CategoryTest Driven Development

Machine.Specifications 0.9.0 released


Today we released the next version of Machine.Specifications. This release implements an important feature to move on in the future. We implemented a complete runner dependency abstraction. What does that mean? Let me take a step back.   The picture above shows the state of Machine.Specifications previous to V0.9.0. The console runner, the resharper runner, the TDnet runner and more were directly dependent upon the same Machine.Specifications version. This means when we release a new...

Machine.Specifications 0.8.0 released


I just released the newest stable release of Machine.Specifications. The newest stable release contains the version number 0.8.0. What has changed in this release? Resharper 8.2 support dotCover 2.7 support dotCover 2.0 to 2.2 support dropped Resharper 6.0 to 7.0 support dropped I decided to drop the support for the old versions of dotCover and Resharper. In the future I will only support two versions of Resharper back. Because there is an issue regarding thread appartments with the Resharper 8...

Machine.Specifications & Machine.Specifications.Should 0.7.0 released


I just released the newest stable release of Machine.Specifications. The newest stable release contains the version number 0.7.0. What has changed in this release? There is one big change and in fact this is the only relevant change for the users of the library: The should extensions have been decoupled into its own nuget package! Machine.Specifications used to ship directly with its own ShouldExtensions. This was a bit of a pain for people using other assertion libraries like FluentAssertions...

Machine.Specifications 0.6.2 released


While we are constantly pushing forward the development of Machine.Specifications it can happen that regression occurs especially in the area of the resharper provider and runner. Unfortunately we don’t have integration tests in that area. Apart from the 0.6.0 build we broke the capability of having internal specs or private nested specs. This issue is now addressed and a new release under 0.6.2 is available on nuget. Check it out and provide feedback. So the this release contains the two...

Machine.Specifications 0.6.1 released


Unfortunately while migrating a lot of existing stuff around the nuget packaging scripts I accidentally broke the nuspec file. I’m really sorry for that! So here is the newest release 0.6.1 which addresses the nuget related issues. Happy coding! The latest release contains the following changes: Nuget package adds proper references for .NET 4.0 and 4.5 Nuget package excludes sources I’m planning advance more and more to version 1.0.0. Along the way I will be dropping support for old...

Machine.Specifications 0.6.0 released


I’m proud to announce the next release of Machine.Specifications. The release contains the version 0.6.0 and is the beginning of a new era. I’ve been in contact with the amazing Alexander Groß for more than a year now. I had the chance to meet him when he was willing to come to Switzerland to visit the .NET Usergroup Central Switzerland. Before I met him I was using Machine.Specifications in several projects and I really like the lightweight approach for acceptance test driven...

Migration from Moq to FakeItEasy with Resharper Search Patterns


In most of the projects in our company we used the mocking framework Moq. Nowadays we are moving away from Moq to FakeItEasy because FakeItEasy is just faking amazing! Seriously, FakeItEasy provides us a cleaner and more readable syntax. It just has the concept of fakes, no need to call .Object everywhere and many more advantages. Our rule of thumb is that we simply apply the boy-scout rule for the migration process from Moq to FakeItEasy. This means if a developers touches a unit test, which...

Clean Code Cheat Sheet


There is an updated version at It took me about one and a half year to update my cheat sheet about clean code and TDD. But now, it’s here. The cheat sheet has grown quite a bit and now contains principles, patterns, smells and guidelines for clean code class and package design TDD – Test Driven Development ATDD – Acceptance Test Driven Development Continuous Integration I had to re-layout the sheets because maintenance became a nightmare (yes, very ironic). Download: Clean...

RowTest / Theory / TestData support for Machine.Specifications


This post discusses the RowTest / Theory / TestData support for the amazing specification framework Machine.Specifications. For those who don’t know Machine.Specifications (aka MSpec) I strongly advice to check it out here. MSpec has one caveat which can sometimes make your life a bit harder than it should be: It misses RowTest / Theory (xUnit) or TestData (nunit) support. With row test support I mean the ability to execute the same Establish, Because and It for several runs with slightly...

FakeItEasy and Windows Store Apps are becoming friends


Probably you already know it: The new Windows Store App class libraries prevent proxy generating using frameworks like Castle.Core because System.Reflection.Emit namespace is missing in the limited framework they’re using.
But we still want to do TDD and therefore we need a nice mocking framework, like FakeItEasy, don’t we?
In this blog post I will show you the best way I came up with to develop Windows Store App compatible code with TDD.

Recent Posts