Запуск тестовых классов JUnit из другого тестового класса JUnit - PullRequest
4 голосов
/ 22 марта 2010

У меня есть два класса, которые я тестирую (назовем их ClassA и ClassB).У каждого есть свой собственный тестовый класс JUnit (testClassA и testClassB соответственно).

ClassA полагается на ClassB для его нормального функционирования, поэтому я хочу убедиться, что ClassB проходит свои тесты перед запуском testClassA (в противном случае результаты testClassA будутбессмысленно).

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

Могу ли / я должен выбросить исключение из testClassA, если тесты testClassB не все пройдены?Это потребует, чтобы testClassB выполнялся незаметно и просто сообщал о своем успехе / неудаче в testClassA, а не в GUI (через JUnit).

Я использую Eclipse и JUnit 4.8.1

Обновление:Пока лучшее, что мне удалось - это отдельный файл с набором тестов, как показано ниже.Это все еще не совсем то, что мне нужно, поскольку он позволяет запускать тесты ClassB, если ClassA не проходит некоторые тесты.

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({testClassA.class, testClassBCode.class})
public class testClassB {
}

Ответы [ 2 ]

9 голосов
/ 22 марта 2010

Ваши юнит-тесты не должны зависеть от других тестов.

Одним из решений вашей проблемы может быть макетирование ClassB в тестах вашего ClassA, чтобы проверить его поведение независимо от результатов тестов ClassB.

Я рекомендую вам попробовать mockito !

0 голосов
/ 22 марта 2010

Вы должны попробовать testng framework, который позволяет этот вид тестирования зависимостей.

...