我有一系列完全相互依赖的测试方法.我一直遇到将对象设置为默认状态或仅将其属性更改为null的问题.在正常的程序中,没有这样的事情发生过.将事物随机设置为最终似乎有所帮助,但我不能仅仅因为测试而修改生产代码.
将属性设置为final也意味着它不在我的代码中 - 如果我的代码改变了这些,编译器将无法编译它(我的代码中没有反射).
在我深入挖掘它之前,你能否告诉我JUnit是否应该做这样的事情?如果是,我可以阅读哪些规则?
JUnit不会null随机设置任何内容.它null确定性地设置:在运行每个测试方法之前,创建测试类的新实例.因此,所有实例变量都设置为默认值,null用于对象引用.
单元测试不应相互依赖.它们必须以任何顺序运行.如果您有相互依赖的部件,则必须将它们放在相同的测试方法中(或者以正确的顺序从测试方法中调用的单独的非测试方法).
如果要初始化所有测试所需的数据,可以使用注释注释方法@Before(此方法将在每个测试方法之前运行)或@BeforeClass注释(此方法将在所有测试方法之前运行一次).