Joe Walnes posted about Design by contract: testing implementations of interfaces. Although the code shown is incomplete (there is no code that implements the CheeseMaker interface), it is understandable enough. In .NET, thanks to NUnit and .NET attributes, the abstract CheeseMakerTest would not have to inherit from Testcase and you would not have to prefix each test with "test". The class would just be decorated with the TestFixture attribute and the tests decorated with the Test attribute.