|
|
1
70
这是有意为之的——尽管测试有点痛苦。 关键是,在生产代码中,您永远不应该希望捕获契约异常;它表示代码中有一个bug,因此您不应该期望在调用堆栈的顶部捕捉到更多的意外异常,这样您就可以进入下一个请求。基本上你不应该把合同例外看作是可以“处理”的例外。
现在,对于测试来说那是一种痛苦。。。但是你真的想测试你的合同吗?这不是有点像测试编译器阻止你传递
如果你
做
|
|
|
2
8
编辑:
ContractFailure方法示例:
|
|
|
3
2
在vs2010 rtm中,全名已更改为“System.Diagnostics.Contracts.\uu ContractsRuntime+ContractException”。HTH公司 |
|
|
4
1
虽然这个问题已经过时了,而且已经给出了答案,但我觉得我有一个很好的解决方案,可以让事情简单易懂。 最后,它允许我们在前提条件下编写测试,简单如下:
记住也要检查
自定义类如下所示:
使用自定义
这使我们能够编写简单的、可读的关于前提条件冲突的测试,如上所示。 |