2013-06-21 5 views
0

Я работаю над Java webapp, который может вызвать у меня злоупотребление JUnit. Я создаю многопользовательский интерфейс для запуска тестов JUnit. Это достаточно просто, но я не могу найти способ указать, что пользователь A хочет параметризовать тестовый класс JUnit с данными X, а пользователь B хочет параметризовать данные Y.Параметризация теста JUnit с разными данными

Возможно ли это? Если нет, я буду благодарен за любые предложения. Благодарю.

+0

Случай завод тест, который принимает 'User x' в качестве входных данных и возвращает правильный параметризированный тип instace? – vikingsteve

+0

@vikingsteve Я не совсем уверен, что вы подразумеваете под испытательным корпусом. Не могли бы вы рассказать? – chris

ответ

6

Как насчет использования @RunWith(Parameterized.class) и @Parameters?

Вы должны иметь возможность запускать те же тесты с использованием данных для разных пользователей, указав разные наборы данных в методе, помеченном @Parameters, который возвращает Collection, который передается конструктору класса Test.

См http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/

+0

Спасибо, но это оставляет мне ту же проблему. Как указать метод @Parameters, какие данные использовать? Любой способ, которым я могу думать, представляет мне проблемы с синхронизацией. – chris

+0

С какими проблемами синхронизации вы сталкиваетесь? В идеале, модульные тесты не должны иметь никаких зависимостей или взаимодействий с объектами «вне» области тестирования, поэтому одновременное тестирование одного и того же теста не должно вызывать проблем. – Raibaz

+0

После выполнения модульных тестов все в порядке. Проблемы с синхронизацией возникают при попытке указать @Parameters, какие данные использовать. Одновременно может быть получено несколько запросов, и это связано с необходимостью обработки потоков для передачи аргумента. – chris