微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单元测试 – 在编写测试时,YAGNI是否也适用?

当我编写代码时,我只需要我需要的功能.

这种方法也适用于写测试吗?

我应该提前为每个使用情况写一个测试,我可以想到只是为了安全起见,还是应该只在我遇到用例时写一个用例的测试?

我认为当你编写一个方法时,你应该测试预期的和潜在的错误路径.这并不意味着您应该扩展您的设计以涵盖所有潜在的用途 – 在需要的时候留下,但您应该确保您的测试在面对无效参数或其他条件时定义了预期的行为.

据了解,YAGNI意味着您不应该开发尚不需要的功能.在这个意义上,你不应该写一个测试,驱使你开发不需要的代码.我怀疑,这不是你所问的.

在这方面,我会更加关心你是否应该编写涵盖意想不到的用途的测试 – 例如,由于传递空值或范围参数导致的错误 – 或重复仅对数据有所不同的测试,而不是功能.在前一种情况下,如上所述,我会说是的.您的测试将记录您的方法在面对错误时的预期行为.这是使用您的方法的人的重要信息.

在后一种情况下,我不太能给你一个明确的答案.你当然希望你的测试保持干涸 – 不要写一个简单地重复测试的测试,即使它有不同的数据.或者,您可能不会发现潜在的设计问题,除非您锻炼数据的边缘案例.一个简单的例子是一个计算两个整数的总和的方法:如果将maxint作为两个参数传递,会发生什么?如果你只有一个测试,那么你可能会错过这个行为.显然这与前一点有关.只有确实需要测试才能确定.

原文地址:https://www.jb51.cc/javaschema/281845.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐