chevron-thin-right chevron-thin-left brand cancel-circle search youtube-icon google-plus-icon linkedin-icon facebook-icon twitter-icon toolbox download check linkedin phone twitter-old google-plus facebook profile-male chat calendar profile-male
0 votes
I have several tests that when run in VS 2010 complete fine, but when run in VS 2013 fails with the following exception. The exception traces back to Isolate.WhenCalled lines, but only occur if the Isolate.Fake.Instance call is inside of the TestInitialize method and not locally done in the TestMethod. 
For example, in the below code _calc is set in the TestInitialize method calc is set locally. The test fails when it hits the Isolate.WhenCalled() line for _calc. I am running version of TypeMock, this was not an issue with
private Calculator _calc;

[TestInitialize, Isolated]
public void InitializeIsolatedFakes()
    _calc = Isolate.Fake.Instance<Calculator>(Members.ReturnRecursiveFakes);

[TestMethod, Isolated]
public void TestMethod1()
    int resultStub = 10;
    var calc = Isolate.Fake.Instance<Calculator>(Members.ReturnRecursiveFakes);
    Isolate.WhenCalled(() => calc.Add(1, 2)).WillReturn(resultStub);
    Isolate.WhenCalled(() => _calc.Add(1, 2)).WillReturn(resultStub);

    var result = calc.Add(1, 2);

    Assert.AreEqual(10, result);


TypeMock.TypeMockException : 
*** Exception throw while recording calls. Please check:
 * Are you trying to fake a field instead of a property? try to set field or use Isolate.Invoke.StaticConstructor
 * Are you are trying to fake an unsupported mscorlib method? See supported types here: 
  ----> System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ----> System.ArgumentOutOfRangeException : Specified argument was out of the range of valid values.
   at HoraceMann.Listbill.Test.Unit.Web.Business.McCamishFile.McCamishFileSenderTest.TestMethod2() in c:devALGCommonSAWMainHoraceMann.Listbill.Test.UnitWebBusinessMcCamishFileMcCamishFileSenderTest.cs:line 263
   at HoraceMann.Listbill.Test.Unit.Web.Business.McCamishFile.McCamishFileSenderTest.TestMethod2() in c:devALGCommonSAWMainHoraceMann.Listbill.Test.UnitWebBusinessMcCamishFileMcCamishFileSenderTest.cs:line 0
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Delegate.DynamicInvokeImpl(Object[] args)
   at System.Delegate.DynamicInvoke(Object[] args)
   at TypeMock.ArrangeActAssert.BehaviorRecordingEngine.PerformRecording()
   at TypeMock.ArrangeActAssert.RecordingEngineBase.Record(Boolean checkForEmptyRecordingBlock)
   at Mock0000IEaiFtpServiceClient.TriggerEaiFtpService(String fileName)
   at HoraceMann.Listbill.Test.Unit.Web.Business.McCamishFile.McCamishFileSenderTest.<>c__DisplayClass2a.<TestMethod2>b__29() in c:devALGCommonSAWMainHoraceMann.Listbill.Test.UnitWebBusinessMcCamishFileMcCamishFileSenderTest.cs:line 263
asked by mark_shiffer (1.7k points)
edited by alex

1 Answer

0 votes
Best answer

Confirmed bug. will be fixed in future versions.

-We'll update here when fixed

Workaround: remove [Isolated] from TestInitialize.


answered by alex (17k points)
selected by mark_shiffer