【发布时间】:2009-12-01 16:40:17
【问题描述】:
使用 VS2010 Beta 2 中提供的 Code Contracts 工具,我定义了一个接口、该接口的一个契约类和两个实现该接口的类。
现在当我来测试代码时,我想测试实现类,以便我知道它们的功能是正确的,我想测试合约代码,以便我知道我的条件是正确的。
我可以在 2 个实现类中的每一个中测试每个合同语句,但这显然是多余的。我可以在其中一个实现类上编写测试,但这似乎有点错误,如何在它们之间进行选择,在更改合同时记住要更新哪一个等。
我想测试实际的接口契约类,但是得到各种编译时警告,我想测试的接口方法在接口契约类上不可用。我知道实际将合约代码注入我的实现类(我可以在 ILDASM 中看到)会发生编译后魔术,但是当我检查接口合约类方法时,它们在 MISL 中,但为空。
我遗漏了一些东西,或者我想做的事情是不可能的。如果不是,那么“最佳实践”是什么?
===编辑===
这里的一个建议是在一个类(测试程序集内部)中实现接口,其目的仅仅是测试接口契约,听起来合理吗?
【问题讨论】:
-
嗨,你有时间做这个吗?这些天我想知道类似的情况。
标签: visual-studio-2010 c#-4.0 code-contracts