Допустим, у меня есть класс JUnit под названием Test.class
. Test.class
имеет около 50 тестов JUnit и на 30 тестов JUnit, всегда появляется эта строка кода:Является ли мой способ повторного использования в тестах JUnit плохой?
Примечание: Я использую Mockito/PowerMock
when(ConnectionHandler().getConnection()).thenReturn(connection);
Я планирую создать служебный класс называется TestUtils.class
и создать частный метод для линии выше, как:
public static stubConnection(Connection connection) {
when(ConnectionHandler().getConnection()).thenReturn(connection);
}
Таким образом, вместо того, чтобы писать вниз when(ConnectionHandler().getConnection()).thenReturn(connection);
каждый раз, когда я мог бы просто пойти на TestUtils.stubConnection(connection)
;
Это рекомендуется? Я просто вижу много повторяющихся кодов в тестах JUnit. Если это помогает, я тестирую действительно класс, который имеет очень низкое сцепление и очень тесно связан.
Если это имеет смысл для вас и экономит ваше время, то да, это хорошая идея. – ChrisStillwell
Я понимаю, почему вы не решаетесь это сделать. Однако статический метод в классе реализации JUnit имеет смысл, если вы обрабатываете изоморфную информацию, не связанную с тестированием, несколько раз в разных тестах. Просто будьте осторожны и осознайте, что теряется в семантике другим читателям, когда вы создаете макроподобные константы. –
@Savagewood. После небольшого рефакторинга у меня есть частный метод в 'Test.class' с именем' stubConnection() ', который в основном делает то же самое, что и 'TestUtils # stubConnection'. Тем не менее, я уверен, что этот метод также будет использоваться в других тестовых случаях JUnit - вот почему я планирую переместить его в другом месте:/ – mpmp