Есть две проги с похожим функционалом.
Одна - более продвинутая версия второй, если провести аналогию с калькулятором - первая умеет
+ -
а вторая
+ - * /
.
Надо протестить обе.
Есть класс JUnit-тестов: условно, ТестПервойПрограммы.
Все по той же аналогии с калькулятором он устроен как-то так:
public class ТестыПервойПрограммы {
protected тестПосчитать(ожидаемыйРезультат, выражение) {
assertEquals(ожидаемыйРезультат, new ПерваяПрограмма().посчитать(выражение));
}
@Test
void дваПлюсДва() {
тестПосчитать(4, "2+2");
}
}
Только @Test - несколько десятков, понятно.
Чтобы не дублировать их код и не заморачиваться, если что-то придется поменять (а приходится часто, потому что это не прикладная программа, а чисто учебная, т.е. для обучения юнит-тестам я ее и пишу), я наследую тесты. Как-то так:
public class ТестыВторойПрограммы extends ТестыПервойПрограммы {
@Override
protected тестПосчитать(ожидаемыйРезультат, выражение) {
assertEquals(ожидаемыйРезультат, new ВтораяПрограмма().посчитать(выражение));
}
@Test
void дваУмножитьНаПять() {
тестПосчитать(10, "2*5");
}
}
Получается, вторая программа автоматом проходит тесты для первой + еще свои собственные.
Меня это целиком устраивает во всем, кроме того, что не вижу возможности без дублирования кода запускать тесты по одному, только все кучей, если сразу стартовать класс. Потому что переопределен только тестПосчитать, и просто нет кнопки в IntellijIdea, чтоб запустить одиночный тест.
Вопрос: возможно ли при такой структуре запускать тесты по одному?
Если да: как это правильно делается? Как хотя бы составить поисковый запрос, чтоб нагуглить то, что я ищу? :)
Если нет (да и вообще): что посоветуете почитать / посмотреть, чтобы решить проблему запуска одиночных тестов при наследовании тестовых классов?