Параметризованный тест JUnit с различными параметрами

Рассмотрим параметризованный тест JUnit. JUnit предоставляет способ параметризации такого теста с использованием статического метода:

@Parameterized.Parameters
    public static Collection<Object[]> parameters(){
        Object[][] data = new Object[][] { { 1, 11 }, { 2, 22 }, { 3, 33 }, { 4, 44 } };
        return Arrays.asList(data);
    }

Однако это не то, что мне нужно, потому что я не знаю параметров самого тестового класса. Тестовый класс должен быть просто тестовым классом, который можно параметризировать с помощью набора параметров. Я не хочу указывать такие параметры внутри самого класса. Учтите, у меня много таких классов в тестовом наборе.

То, что я хочу, - это параметризовать весь набор тестов из внешнего кода. То есть, есть некоторый другой код, который создает пакет с определенным набором параметров. Сам набор не знает параметров, с которыми он будет параметризован.

Например, у меня есть набор тестов X состоящий из тестовых классов A, B, а также C, Все эти классы принимают, например, String и целое число в своем конструкторе в качестве своих параметров. Теперь я хочу, чтобы иметь возможность воплощать X внешне (например, в другом тестовом наборе) с определенной строкой s и инт i так что это будет воплощать AB а также C с помощью s а также i в их конструкторах.

Как этого достичь?

1 ответ

Я использую пакет JUnitParams, который добавляет больше возможностей для параметризации тестов. Одна из этих способностей - указать отдельный класс, который предоставляет параметры. Посмотрите на ссылку, они приводят много примеров, один из которых использует внешний класс.

Другие вопросы по тегам