我想问你的问题很广泛,但同时也很具体。首先,我不得不说,我最感兴趣的是适用于 .net 环境的答案。
好吧,我想提高我生成的代码的级别。现在我主要使用 TDD 和静态代码分析来确保我的代码是正确的。最近我听了 Dino Esposito 关于代码合约的演讲,现在我想将它与其他技术结合使用。在听 Dino 的时候,我还记得Debug.Assert()
and Trace.Assert()
。
具体来说,我会问几个问题:
- 我应该如何编写合同和单元测试以相互补充?
- 我应该在每种方法中使用代码契约还是只在公共方法中使用代码契约?
- 我应该阻止使用
Debug.Assert()
吗?什么时候可以使用它们?(例如,请注意 .net 中的不变量仅在公共方法/属性退出时检查。那么,是否可以通过简单的方法在方法中间进行一些检查Assert()
?) - 您能否向我推荐一个开源项目,其中所有这些技术都被正确使用,因为一张图片描绘了一千个单词?