В модульном тесте мне нужно выполнить довольно сложную настройку (это может быть запах кода, но это не то, о чем идет речь о :-)). Меня интересует, лучше ли иметь несколько методов @Before
, выполняющих настройку, или только один, который вызывает вспомогательные методы для выполнения инициализации.
Например.
@Before
public void setUpClientStub() {
}
@Before
public void setUpObjectUnderTest() {
}
vs.
@Before
public void setUp() {
setUpClientStub();
setUpObjectUnderTest();
}
Я объявил все свои @Before частные методы и создал отдельный метод, аннотируемый @Before, который названный всеми они и мои тесты работали. Я работал в kotlin. Вот то, как можно сделать это:
private fun setUpClientStub() {
//whatever you want to do
}
private fun setUpObjectUnderTest() {
//whatever you want to do
}
@Before
fun setUp() {
setUpClientStub()
setUpObjectUnderTest()
}
@Test
fun test() {
//your test logic
}
Этот способ, которым можно удостовериться, что методы называют в правильном порядке и можно назвать их любым способом, которым Вы хотите.