Как вы проводите модульное тестирование, когда у вас есть
- некоторые общие юнит-тесты
- более сложные тесты, проверяющие крайние случаи, в зависимости от общих
Чтобы привести пример, представьте себе тестирование CSV-ридера (я только что сделал запись для демонстрации),
def test_readCsv(): ...
@dependsOn(test_readCsv)
def test_readCsv_duplicateColumnName(): ...
@dependsOn(test_readCsv)
def test_readCsv_unicodeColumnName(): ...
Я ожидаю, что суб-тесты будут выполняться, только если их родительский тест пройден успешно. Причина этого в том, что выполнение этих тестов требует времени. Многие сообщения об ошибках, которые ссылаются на одну причину, также не будут информативными. Конечно, я мог бы включить все крайние случаи в основной тест, но мне интересно, есть ли более структурированный способ сделать это.
Я нашел эти связанные, но разные вопросы,
UPDATE:
Я нашел TestNG , в котором есть отличная встроенная поддержка тестовых зависимостей. Вы можете написать такие тесты,
@Test{dependsOnMethods = ("test_readCsv"))
public void test_readCsv_duplicateColumnName() {
...
}