Моим коллегам-инженерам-тестировщикам нужно перечитать принципы ООП, понять их ценность и действительно начать их использовать. Например, они пишут –
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”