gpt4 book ai didi

unit-testing - Junit 中是否有任何理由不在声明时创建您的对象?

转载 作者:行者123 更新时间:2023-12-04 06:50:24 27 4
gpt4 key购买 nike

是否有任何理由将对象创建放在 setUp() 内而不是实例变量声明中?

我在书中看到它是这样做的,但效果是一样的,我不确定它是否是出于最佳实践的原因,因为早期版本的 Junit 没有为每个测试实例化对象( see here ) ,或者如果这只是一种风格。

最佳答案

如果所讨论对象的实例化不依赖于外部因素,那么立即声明和定义它是完全可以的。然而,通常它取决于其他因素(例如单例 * 的初始化),或者需要构造函数参数 - 其中一些甚至可能依赖于测试 - 或者它的初始化需要多个步骤。然后,您必须将实例化推迟到设置方法,甚至是测试方法本身。

请注意,JUnit 创建了测试类的新实例,因此无论如何都会为每个测试方法的执行创建其数据成员的新实例。因此,如果您没有上面提到的任何依赖项,那么从语义上讲,在声明点或在 setup 方法中实例化成员之间没有区别。

*这是不喜欢单例的原因之一。但是,通常您仍然拥有它们,尤其是在遗留代码中。

关于unit-testing - Junit 中是否有任何理由不在声明时创建您的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3204749/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com