Diaspar wrote in Contract Test:
Contract Tests explain how a class should extend a superclass or implement and interface, so that I don't have to read a bunch of prose to figure out how to do that.
Typically, a contract test case class is abstract, then I extend it and implement a creation method or two to return instances of my own implementation of the given interface. That gives me a standard battery of tests I can run to drive my implementation. It might not be perfect (I'll have n failing tests to start) but I prefer it to documentation written in prose.
So if you're delivering something you want me to extend and I need to follow more than three rules, please deliver me some contract tests.
又google了一下，找到Joe Walnes一篇相关的Blog:Design by contract: testing implementations of interfaces