我今天早些时候看到了这个问题:Repeating code in JUnit tests。你在开始时如何编写这段代码?您看到有一个方法addDrivingRecord(...)
。当你第一次开始写时,这个方法不存在,所以你做了那个测试,确保它有效,然后继续setUp()
方法,或者你等到你写了addDrivingRecord(...)
方法然后将它重构为@Before
?如果需要,我会进一步解释。
答案 0 :(得分:4)
如果我理解你的询问是否应该:
或
如果这是你的问题,我应该选择第一个选项:首先使用方法,然后实现并变为绿色,然后重构你的测试。
因为两个原因:
您应该一次测试/实现一件事,因此您将编写一个测试方法。然后你会把它变成绿色。只有这样你才能编写另一种方法并意识到代码可以在@Before中重构
一个好的做法是编写测试方法,只有当你意识到有共同点时才会将它们移到@Before。这样你就不会在初始化中强制执行不必要的事情。此外,如果您发现另一个测试需要一个非常不同的@Before方法,它可能属于另一个测试类。