многократный вызов одного теста в Junit

#java #unit-testing #junit

#java #модульное тестирование #junit

Вопрос:

Я считываю входные данные, такие как testname, ожидаемый результат, параметры из xml-файла и зависит от входных данных (testname), вызывая соответствующий testmethod несколько раз. например

 public void test_calc()  throws Exception{
    ............
    .......
    if(testName.equalsIgnoreCase("addition")){                
        addition(table, expectedResult);                             
    }
    else if(testName.equalsIgnoreCase("multiplication")){           
        multiplication(table, expectedResult);                
    }

    else if(testName.equalsIgnoreCase("substraction")){
        substraction(table, expectedResult);    
    }   
  

Я вызываю один и тот же метод несколько раз, зависит от входных данных XML. Я использую ANT для запуска этих тестов Junit, и все тесты выполняются правильно.Но в отчете он отображается как одиночный тест с testname test_calc, а не сложение, умножение и т.д. Я хотел бы получать отчет для каждого тестового запуска с результатом прохождения / сбоя.Может кто-нибудь, пожалуйста, помочь мне в этом?

Ответ №1:

Именно так создаются отчеты JUnit. Каждый тестовый пример (== метод тестирования сообщается один раз).

Вы получаете отдельные отчеты, определяя отдельные методы. Вам не нужно «имя» тестового примера для создания отчетов. Имя — это чисто удобочитаемое имя, прикрепленное к тестовому классу или набору. Вот как писать ваши тестовые примеры:

 public void testAddition {
  addition(table, expectedResult);
}
public void testMultiplication {
  multiplication(table, expectedResult);
}
public void testSubstraction {
  substraction(table, expectedResult);
}