.NET Cheat Sheet

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”);