For better unit testing results download the Cheat Sheet for .NET, print it and tape it to your computer.
Changing Behavior
Changing returned valuesIsolate.WhenCalled(() => SomeClass.StaticMethod())
.WillReturn(10);
SomeClass myInstance = new SomeClass();
Isolate.WhenCalled(() => myInstance.ReturnFive()).WillReturn(10);
Function | API |
---|---|
Throwing exceptions | Isolate.WhenCalled(() => myInstance.ReturnFive()).WillThrow(new >Exception()); |
Ignoring methods | Isolate.WhenCalled(() => myInstance.VoidMethod()).IgnoreCall(); |
Changing Linq queries return values | Isolate.WhenCalled(() => from c in customerList select c).WillReturn( new List < Customer> { new Customer { Id = 1, Name=“Dave” }, new Customer { Id = 2, Name=“John” }, new Customer { Id = 3, Name=“Abe” } }); |
Custom return values | Isolate.WhenCalled(()=> myInstance.GetAgeOf(“AnyName”)).DoInstead((callContext)=> { string name = callContext.Parameters[0] as string; if(name == “John Smith”) return 30; return -1; }); |
Conditional behavior | Isolate.WhenCalled(()=>myInstance.GetAgeOf (“John Smith”)) .WithExactArguments().WillReturn(30); |
Collections | Isolate.WhenCalled(() => SomeClass.Products) .WillReturnCollectionValuesOf(new[] { new ProductItem {Product = prodA, Quantity = 20}, new ProductItem {Product = prodB, Quantity = 40}, new ProductItem {Product = prodA, Quantity = 30} }); |
Replacing Ref and Out values | int refParamToReplace = 6; string outParamToReplace = “FakeName”; Isolate.WhenCalled(() => myInstance.RefOutMethod(ref refParamToReplace, out outParamToReplace)).WillReturn(10); |
Non-public Members | Isolate.NonPublic.WhenCalled(myInstance, “PrivateMethod”).WillReturn(“Name”); Isolate.NonPublic.Property.WhenGetCalled(myInstance,“PrivateProp”).WillReturn(5); Isolate.NonPublic.Property.WhenSetCalled(myInstance,“PrivateProp”).IgnoreCall(); |
Creating Objects
Fake object creationvar myFake = Isolate.Fake.Instance<SomeClass>(Members.ReturnRecursiveFakes);
// Default, returns fake objects.
Members.CallOriginal
// Methods not faked, constructor called.
Members.ReturnNulls
// Methods return null values
Members.MustSpecifyReturnValues
// Methods fail if called without setting
behavior
Function | API |
---|---|
Interfaces | var myFake = Isolate.Fake.Instance<ISomeInterface>(); // Also for abstract classes |
Faking static methods |
Isolate.Fake.StaticMethods <SomeClass>(); // Same arguments as Isolate.Fake.Instance. |
Future objects | var myFake = Isolate.Swap.NextInstance<SomeClass>().WithRecursiveFake(); |
Faking dependencies | var myInstance = Isolate.Fake.Dependencies<SomeClass>(); var fakeDependency = Isolate.GetFake<ISomeInterface>(myInstance); |
Call Verification
Public methodsIsolate.Verify.WasCalledWithAnyArguments(
()=>myInstance.ReturnFive());
Isolate.Verify.WasCalledWithExactArguments(
()=>myInstance.GetCustomerByName(“John”));
Isolate.Verify.WasNotCalled(()=>myInstance.ReturnFive());
Function | API |
---|---|
Non public Methods | Isolate.Verify.NonPublic.WasCalled(myInstance, “PrivateMethod”); Isolate.Verify.NonPublic.Property .WasCalledGet(myInstance, “PrivateProp”); Isolate.Verify.NonPublic.Property .WasCalledSet(myInstance, “PrivateProp”); Isolate.Verify.NonPublic.WasCalled(myInstance, “GetCustomerByName”).WithArguments(“John”); |