Thanks for taking the time on this.
I did do a workaround that was not the least bit elegant: I wrapped the SPList.WorkflowAssociations.GetAssociationByName() call in it's own method and simply mocked the wrapping method. Not in the least bit pretty, but it worked. I'll definitely give your suggestion a try.
Here's the code for the hack (which is just the offending call moved to it's own method):
private static SPWorkflowAssociation GetWorkflowAssociation(string associatedWorkflowName, SPList list)
return list.WorkflowAssociations.GetAssociationByName(associatedWorkflowName, CultureInfo.CurrentCulture);
Here is the code for the test, with my original efforts commented out:
//Isolate.WhenCalled(() => fakeTargetList.WorkflowAssociations.GetAssociationByName(associatedWorkflowName, CultureInfo.CurrentCulture)).WillReturn(fakeWorkflowAssociation);