Я думаю, что «стандартный» ответ заключается в том, что он должен доходить до того, что в случае ошибки в коде он должен прервать один тест, но не скрывать другие ошибки (не мешать другим тестам запускаться) этот терпит неудачу. Каждый тест проверяет одно, а два теста не проверяют одно и то же. Это идеал, не всегда достижимый. Назовите это руководством.
Как говорится, это действительно искусство. Сначала я бы отложил в сторону проблемы с производительностью и уделил больше внимания удобству обслуживания. Там у вас есть две с половиной до трех строк дублирования. Если дизайн изменится, его будет сложно поддерживать. Дублирование само по себе может быть решено с помощью метода установки и поданного в класс в этом случае, но главное, о чем нужно беспокоиться, это удобство сопровождения.
Тесты должны быть достаточно маленькими, чтобы их можно было обслуживать, было легко понять, и чтобы они (или вы, по прошествии некоторого времени) могли понять, что делает код, и иметь возможность поддерживать тесты. *