Testing a Cake Addin

Sponsorship is available! If you’d like to sponsor CodeOpinion.com and have your product or service advertised exclusively (no AdSense) on every post, contact me.

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.


Since we are creating an extension method on the ICakeContext, 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:


I’m going to create a FakeCakeContext for my tests that will implement ICakeContext.  All the properties I need to implement I will be using FakeItEasy to create fakes.


Now that we have our FakeCakeContext, 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.


I’ve been using FakeItEasy a lot more lately instead of Moq and have really been enjoying it.  If you are using a mocking or faking library, which do you prefer?  Let me know in the comments or on Twitter.
Follow @CodeOpinion on Twitter

One thought to “Testing a Cake Addin”

  1. Testing for the log message is not really the important thing here, but I get the idea 😉 Besides I wouldn’t vote for mocking the ICakeContext. Those kinds of tests depend very much on assumptions about the contract, which can be wrong / change over time. I think that integration-testing this should be preferred.

Leave a Reply

Your email address will not be published. Required fields are marked *