Мне нужно создать testuite, с подсудиями, содержащими тесты, которые проверяют данные для меня (с использованием библиотеки java). Цель этого теста - проверить, хорошо ли работает библиотека. Подумайте об этом, как проверка определений антивирусных сканеров. У меня есть опыт работы со старым Junit/Nunit и ожидал, что это будет довольно легко. Однако, оказывается, это не с Junit4.Junit создавать тесты на основе динамических данных
У меня есть следующая файловая раскладка:
typename(dir)
- file1
- file2
typename(dir)
- file1
- file2
- file3
etc.
мне нужно запустить UnitTest, который проверяет каждый файл, и живет в «TYPENAME» TestSuite. Идея заключается в том, чтобы обработать файловую систему, а затем генерировать testcases и сьюты динамически:
for (File typeNameDir: typenameDirs)
{
TestSuite typenameSuite= new TestSuite();
typenameSuite.setName(typename);
for (File file: filesInThisDir)
{
typenameSuite.addTest(new FileTest(File));
}
}
Проблема теперь что addTest
ожидает класс, который реализует Test
, но это интерфейс рамок и не может быть использовано, так как из которые необходимо выполнить. Я также пытался расширить TestCase
, но это также не работает: мне нужно установить имя теста там вручную, и он все еще не работает нормально. Также не рекомендуется расширять классы junit.framework
.
Итак, похоже, мне нужно использовать опцию Parameterized
, но это не позволяет мне вводить динамически генерируемые данные ... Итак, что мне делать?
Я имею в виду только переход к JUnit 3.
Да, но поскольку этот метод является «статическим», я не могу предоставить этот метод, например, динамический путь, где ему нужно получить его файлы. – Peterdk
@Peterdk JUnit необходимо знать, сколько тестовых примеров будет запущено до того, как он выполнит какой-либо из них, поэтому метод является статическим. Не могли бы вы привести пример динамического пути? Прости, что не понимаю. – Hippoom
Как видно в startpost, мне нужна отдельная testuite для каждой папки имен. Поэтому параметризованный тест должен знать, какая папка ему нужна: 'filesInThisDir' должен каким-то образом динамически получать путь к файлу. Это невозможно. – Peterdk