只是想知道TDD /自动化单元测试的优缺点,并寻找社区关于专业开发人员是否可以在不支持单元测试的情况下编写应用程序的观点?
答案 0 :(得分:2)
我打赌我会得到-1 -ed,但我仍然说:如果你有其他措施来确保质量,包括避免回归,程序验证,程序验证,那么 不。
唯一的问题通常是人们没有任何其他工具而不是单元测试来实现这一目标。
如果您有正式测试的模型(有一个工具,实际测试它,或者它是以确保它有效的方式构建的),并且您已经正式测试了确保实际运行的软件符合该模型的方法模特,那很好。
示例:如果您确定,您在ruby中编写的代码将按照您的预期行事(因为您或其他人测试了ruby解释器并且没有错误,或者您只使用了一个子集已知安全的功能)然后它的罚款。通常,我们以这种方式信任C编译器和CPU。
另外,如果程序只使用一次,则没有回归问题!如果我在bash中编写一个单行代码,它会为我计算一些东西,我可以先在假数据上手动测试它,然后在真实数据上运行它 - 不需要编写自动化测试。
如果你承担责任,你也可以同意假设:我通常认为,日食非常善于创造制定者和吸气者,我不会对这些进行测试。另外,我假设,如果Java 7中的Java的Collection类出现任何问题,那么现在已经证明了这一点。但万一有麻烦,这是你个人的麻烦。不要责怪任何人。
就个人而言,我很少在某些代码上使用单元测试,因为我正在测试它们,而它们仍然是一张纸上的流程图,我确保我只使用已知可以在其中工作的语言/库的子集。的情况。此外,如果没有同行评审,我绝不会让代码出来。不过,如果有人对他们进行验收测试,有时会更好......
答案 1 :(得分:1)
由你决定。这个问题本质上更具哲学性。
单元测试只是一种帮助您的工具。您可以选择忽略它们。但是,如果您打算开展一个非常简单的项目,我会建议您使用单元测试。
是的,他们也花时间写作。但是如果有任何重构或者代码的某些部分需要更改,最终你会节省很多。
答案 2 :(得分:1)
一如既往:这取决于。
一般来说,单元测试是一件好事:它们会捕获一大堆错误,它们会验证代码的特定部分在特定情况下是否按预期工作,并且当出现问题时,它们可以更轻松地跟踪错误。因此,除非你有充分的理由不这样做,否则你应该编写单元测试。
不写单元测试的好理由包括: