使用VS2010 Beta 2中提供的Code Contracts工具,我已经定义了一个接口,该接口的合同类和两个实现该接口的类。
现在,当我来测试代码时,我想测试实现类,所以我知道他们的功能是正确的,我想测试合同代码,所以我知道我的条件是正确的。
我可以测试每个实现类中的每个合同语句,但这显然是多余的。我可以在其中一个实现类上编写测试,但这似乎有点不对,如何在它们之间进行选择,记住在更改合同时要更新哪一个等。
我想测试实际的接口契约类,但是得到各种编译时间警告,我想测试的接口方法在接口契约类上不可用。我知道有一些后编译魔法实际上将合同代码注入我的实现类(我可以在ILDASM中看到),但是当我检查接口契约类方法时,它们在MISL中,但是空。 / p>
我遗失了一些东西,或者我想做的事情是不可能的。如果不是,那么“最佳实践”是什么?
===编辑===
这里的一个建议是在类(测试程序集内部)中实现接口,其目的仅仅是测试接口契约,听起来合理吗?
答案 0 :(得分:1)
测试合同就像是对单元测试进行单元测试。你没有这样做,因为那时你必须测试测试的测试,等等。