Как на самом деле используется «сбой» в тестовом примере JUnit?
java
unit-testing
junit
junit4
Sanju
источник
источник
Допустим, вы пишете тестовый пример для отрицательного потока, когда тестируемый код должен вызывать исключение.
источник
Я думаю, что обычным вариантом использования является вызов его, когда в отрицательном тесте не было создано исключение.
Что-то вроде следующего псевдокода:
источник
Я использовал его в том случае, когда что-то могло пойти не так в моем методе @Before.
источник
@Before
метод успешен, вероятно, лучше проверить его непосредственно в этом методе. В качестве бонуса, по крайней мере, JUnit и TestNG даже сообщат о другом сбое для ошибок из@Before
/@After
methods, так что можно увидеть, что проблема не в самом тесте.Вот как я использую метод Fail.
Есть три состояния, в которых ваш тестовый пример может закончиться
предназначено (в отличие от отрицательных тестовых случаев, которые ожидают возникновения исключения).
Если вы используете eclipse, три состояния обозначаются зеленым, синим и красным маркером соответственно.
Я использую операцию отказа для третьего сценария.
например: public Integer add (integer a, Integer b) {return new Integer (a.intValue () + b.intValue ())}
источник
fail()
.Я, например, использую
fail()
для обозначения тестов, которые еще не закончены (бывает); в противном случае они были бы успешными.Возможно, это связано с тем, что я не знаю о какой-то неполной функции (), которая существует в NUnit.
источник
В параллельных и / или асинхронных настройках вы можете проверить, что определенные методы (например, делегаты, прослушиватели событий, обработчики ответов, вы называете это) не вызываются. Помимо имитации фреймворков, вы можете вызвать
fail()
эти методы, чтобы не пройти тесты. Истекшие тайм-ауты - еще одно естественное условие отказа в таких сценариях.Например:
источник
Вероятно, наиболее важным вариантом использования является проверка исключений.
Хотя junit4 включает ожидаемый элемент для проверки того, произошло ли исключение, похоже, что он не является частью более нового junit5. Еще одно преимущество использования
fail()
перед использованиемexpected
заключается в том, что вы можете комбинировать его сfinally
возможностью очистки тестового примера.Как отмечено в другом комментарии. Также разумно иметь возможность провалить тест, пока вы не завершите его реализацию.
источник