unit-testing - 创建易于维护的测试

标签 unit-testing testing mocking bdd

在一项关于为我们的项目实现单元测试的提案中,我的经理争辩说,创建单元测试的成本可能更高,因为您将维护两套代码。他的论点是只要需求/功能发生变化,单元测试就可能过时,因此开发人员应该更新测试以通过自动构建。他说这对开发人员来说可能会带来不便,因为他们的编码时间可能会减少并花在修复测试上。

我想实现单元测试的原因是在将代码提交给验证团队进行功能测试之前,尽量减少错误的发生,尤其是关键错误。我还相信,通过拥有更好的质量系统可以收回创建单元测试的成本。

现在,他对我的挑战是创建易于维护且易于修改的测试,或者如果可能的话,创建不易损坏的测试。我正在使用 JUnit 等 xUnit 测试框架和 mockito 和 powermock 等模拟框架来帮助进行测试。

我正在寻找有关如何编写易于维护的测试或如何避免脆弱测试的提示和技术。是否有其他工具可以方便地创建此类测试。我正在用 Java 和 C++ 编写代码。谢谢。

最佳答案

我认为您正面临文化差异 - 您的经理担心测试可能会浪费时间。众所周知,TDD/BDD 过程的前期成本更高——但随着时间的推移,你开始收获返回,因为“只改变这件孤立的事情……”——不再抛出痛苦/尴尬/代价高昂的错误。

我的建议是你做一些研究并整理一份文件,试图向你的经理推销流程,根据你的业务中已经发生的事情提出一个业务案例,这些案例可以/本来可以通过可靠的解决方案来解决测试套件。

有一本书比我见过的任何网站、文章等都更好地介绍了 TDD。我强烈建议任何想要练习 TDD/BDD/OOP 的人阅读它: http://www.growing-object-oriented-software.com/ (我没有从链接中赚到任何钱!-但它是我办公 table 上的绝妙补充!)。

关于unit-testing - 创建易于维护的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12065260/

相关文章:

node.js - Jest 模拟子模块功能

c# - 如何使用 Moq 模拟 SqlDataReader - 更新

python - 我可以在 python 中 "fake"一个包(或至少一个模块)用于测试目的吗?

java - 测试具有多个字段的类的字段状态

objective-c - 延迟 XCTest 中所有单元测试的执行

.net - 使用 VS 2010 进行单元测试的教程

node.js - 测试函数时替换变量的值

java - 使用 HttpUnit 发送带有 POST 请求的文件

unit-testing - 如何将测试映射到数字列表

unit-testing - java.lang.AssertionError : expected 错误