2 回答

TA贡献1810条经验 获得超5个赞
是什么让你认为它在“语义上”属于 BeforeClass?!从语义上讲,测试属于您的被测类的任何方法的预期行为......属于测试方法。不进入准备休息的方法。
一个有意义的init 方法需要接收每个测试用例设置数据。因此,如果有的话,您将拥有一个在 @Before 方法中初始化的字段MyDataTransformer underTest。使用稍后允许进行适当测试的参数。
测试 init 方法的行为是否符合预期并抛出异常属于一个独特的、很好命名的 @Test 方法。
除此之外,您可以强制 Junit 以某种顺序执行测试用例(例如按字典顺序排序)。这不是很好的做法,但有时可以很好地解决此类排序问题。

TA贡献1862条经验 获得超6个赞
一个名为 init 的函数之间没有联系,它应该在单元测试中只运行一次。它也可以在每个函数之前运行。
让一个测试依赖于另一个是不好的做法,你必须分开它们的测试上下文,否则这会导致噩梦,如果第二个测试依赖于另一个,它可能会失败,因为第一个测试改变了之间共享的状态他们。因此,您正在放慢自己寻找回归根本原因的速度,即使您决定按字母顺序排列您的测试,如果您有很多人在同一个项目上工作并且有人以不同的方式命名他的测试……您会发现这也很糟糕。
嵌套类的目的是按域对测试进行分组,从而提高测试的质量和可维护性。我在您的设计中看到的只是一个领域。
题外话:抛出一般异常类是不好的做法,为了可维护性,创建一个专门的。我也看到你的代码有异味,为什么你在一个catch里面返回,通常,你必须记录异常或抛出它,并且返回必须在外面,另外,为了让你以后不那么头疼,改为返回一个空数组为空。
添加回答
举报