C#中的单元测试接口契约

时间:2009-12-01 16:40:18

标签: visual-studio-2010 c#-4.0 code-contracts

使用VS2010 Beta 2中提供的Code Contracts工具,我已经定义了一个接口,该接口的合同类和两个实现该接口的类。

现在,当我来测试代码时,我想测试实现类,所以我知道他们的功能是正确的,我想测试合同代码,所以我知道我的条件是正确的。

我可以测试每个实现类中的每个合同语句,但这显然是多余的。我可以在其中一个实现类上编写测试,但这似乎有点不对,如何在它们之间进行选择,记住在更改合同时要更新哪一个等。

我想测试实际的接口契约类,但是得到各种编译时间警告,我想测试的接口方法在接口契约类上不可用。我知道有一些后编译魔法实际上将合同代码注入我的实现类(我可以在ILDASM中看到),但是当我检查接口契约类方法时,它们在MISL中,但是空。 / p>

我遗失了一些东西,或者我想做的事情是不可能的。如果不是,那么“最佳实践”是什么?

===编辑===

这里的一个建议是在类(测试程序集内部)中实现接口,其目的仅仅是测试接口契约,听起来合理吗?

1 个答案:

答案 0 :(得分:1)

测试合同就像是对单元测试进行单元测试。你没有这样做,因为那时你必须测试测试的测试,等等。