Ego*_*hin 30 language-agnostic unit-testing
测试是否比测试的实际代码更大是否正常?对于我正在测试的每行代码,我通常在单元测试中有2-3行.这最终导致花费大量时间只需键入测试(模拟,模拟和模拟更多).
节省时间在哪里?你有没有避免测试代码是否是微不足道的?我的大多数方法都不到10行,测试每一个方法需要花费很多时间,正如你所看到的那样,我开始质疑大部分测试的编写.
我不是在提倡不进行单元测试,我喜欢它.只想看看人们在编写测试之前考虑的因素.它们是有代价的(就时间而言是金钱),所以必须以某种方式评估这个成本.如果有的话,您如何估算单元测试所带来的节省?
Dro*_*per 16
您可能正在测试错误的东西 - 您不应该对代码中的每个方法进行不同的测试.
您可能有太多测试,因为您测试实现而不是功能 - 尝试测试完成测试的方式.
例如,如果您的客户有权获得每笔订单的折扣 - 使用正确的数据创建客户并为该客户创建订单,然后确保最终价格是正确的.这样你就可以测试业务逻辑,而不是内部如何完成.
另一个原因是,如果你需要初始化需要大量代码的困难对象尝试使用伪造/模拟,那么大型测试就是缺少隔离(也就是模拟).
最后,如果你有复杂的测试,它可能是一种气味 - 如果你需要编写大量代码来测试一个简单的功能,它可能意味着你的代码紧密耦合,你的API不够清晰.