В Kotlin с JUnit5 мы можем использовать assertFailsWith
В Java с JUnit5 вы можете использовать assertThrows
В Java, если я хочу отделяет объявление исполняемого файла от самого выполнения , чтобы уточнить тесты в форме «Дано-потом-когда», мы можем использовать JUnit5 assertThrows
следующим образом:
@Test
@DisplayName("display() with wrong argument command should fail" )
void displayWithWrongArgument() {
// Given a wrong argument
String arg = "FAKE_ID"
// When we call display() with the wrong argument
Executable exec = () -> sut.display(arg);
// Then it should throw an IllegalArgumentException
assertThrows(IllegalArgumentException.class, exec);
}
В Kotlin мы можем использовать assertFailsWith
:
@Test
fun `display() with wrong argument command should fail`() {
// Given a wrong argument
val arg = "FAKE_ID"
// When we call display() with the wrong argument
// ***executable declaration should go here ***
// Then it should throw an IllegalArgumentException
assertFailsWith<CrudException> { sut.display(arg) }
}
Но, как мы можем разделить объявление и выполнение в Kotlin с помощью assertFailsWith
?