Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.
In my last post I created a simple Cake Addin that was for replacing appSettings in a app/web.config. As promised, one of the other aspects of a creating a cake adding will be writing tests. So let’s cover how you can get start testing a Cake addin.
ICakeContext
Since we are creating an extension method on theICakeContext, we need an implementation we can use to test. One solution to this is to create a fake.
Ultimately what you need to do is implement the aspects of the ICakeContext you use within your extension method. In my example, the only thing I was using was the Log property.
For reference, here was my extension method:
FakeCakeContext
I’m going to create aFakeCakeContext for my tests that will implement ICakeContext. All the properties I need to implement I will be using FakeItEasy to create fakes.
Test
Now that we have ourFakeCakeContext, we can write a test that calls our extension method. In our test, I’m using FakeItEasy to validate that the Log.Write was actually called on the FakeCakeContext.