Моим коллегам-инженерам-тестировщикам нужно перечитать принципы ООП, понять их ценность и действительно начать их использовать. Например, они пишут –
class Epic {
Type field = new Type();
}
class Test1 extends Epic {
@Test
public void test() {
assertNotNull(field);
}
}
вместо –
class Epic {
}
class Test1 extends Epic {
private Type field = new Type();
@Test
public void test() {
assertNotNull(field);
}
}
Их рассуждения таковы: “Когда мы добавим еще один тест в рамках этого epic и объявим то же самое поле, мы получим проблему с сонаром для повторяющихся полей”.
Мой вывод заключается в том, что они все еще не правы. Вам нужно объявлять и инициализировать поля только в том классе, в котором вы их используете, а не в суперклассе, надеясь, что кто-нибудь когда-нибудь будет использовать его в другом дочернем классе.
Оригинал: “https://dev.to/havryliuk/automation-test-engineers-and-oop-38g8”