为什么 JUnit 测试方法无法返回值?
文档 https://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods说(强调我的):
测试方法和生命周期方法可以在当前测试类中本地声明、从超类继承或从接口继承(请参阅测试接口和默认方法)。另外,测试方法和生命周期方法不能是抽象的,也不能有返回值.
为什么enforced像这样?
这纯粹是设计选择吗?这是最佳实践吗?
我还没有看到提到的一件事是,这一设计决策背后的原因之一是历史性的。
在用注释标记的测试用例之前,它们是由 JUnit 通过反射进行分析的 - 所有public void
方法,其名称开头为test
,并且没有任何参数,被视为由框架运行的测试用例。
如果这些方法也允许返回一个值,那么您就无法创建以以下开头的公共帮助器方法test
计算出一些测试中常用的值,或者框架运行器会尝试运行它。
我想无论如何你应该把它们设为私有。
另外,这也是“以动词开头的方法名应该do某事”(而不是计算某事)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)