我在职业生涯的不同阶段只进行过小型单元测试.每当我再次开始潜入它时,总是让我感到麻烦,如何证明我的测试是正确的.我如何判断我的单元测试中没有错误?通常我最终运行应用程序,证明它有效,然后使用单元测试作为一种回归测试.建议的方法是什么和/或您对此问题采取的方法是什么?
编辑:我也意识到你可以编写易于理解的小型粒度单元测试.但是,如果您认为小巧,精细的代码完美无缺,那么您可以编写小型,精细的程序而不需要进行单元测试.
Edit2:对于参数"单元测试是为了确保你的更改不会破坏任何东西"和"只有在测试与代码具有完全相同的缺陷时才会发生这种情况",如果测试过度适用怎么办?通过错误的测试可以传递好的和坏的代码.我的主要问题是单元测试有什么用处,因为如果您的测试存在缺陷,您无法真正提高您对代码的信心,无法真正证明您的重构有效,并且无法真正证明您符合规范?
去年我问过" 依赖类型可以证明你的代码在规范上是正确的.但是你如何证明规范是正确的? ".投票最多的答案提出以下推理:
希望你的规范很简单,小到足以通过检查来判断,而你的实现可能要大得多.
这种推理对我来说很有意义.Idris是测试这些概念最容易理解的语言; 然而,由于它几乎可以像Haskell一样使用,它常常让程序员在旧概念中游荡,而不知道在哪里应用依赖类型.一些现实世界的例子可以对此有所帮助,那么,在实践中发生的程序的具体例子是什么,很容易表达为类型,但实现起来很复杂?