我想检查是否引发了异常,但是发生了错误

时间:2020-06-05 15:01:37

标签: kotlin

我无法捕捉到异常

我的测试:

@Test
fun shouldException()  {
    assertThrows<WrongArgumentsException> {
        val request = HttpEntity<String>("{\"username\": \"example\", \"password\": \"12345\"")
        val responseEntity = restTemplate.postForEntity("http://localhost:$port/api/user/registration", request, String::class.java)
    }
}

我的方法中的异常:

if (bindingResult.hasErrors()) {
    throw WrongArgumentsException(bindingResult.allErrors[0].defaultMessage)
}

调试中:

2020-06-05 17:39:43.214 DEBUG 11308 --- [o-auto-1-exec-1] .w.s.m.a.ResponseStatusExceptionResolver : Resolved [com.example.utils.exceptions.basic.WrongArgumentsException: Password should be from 6 to 32 length]

有一个例外!但是有错误:

org.opentest4j.AssertionFailedError: Expected com.example.utils.exceptions.basic.WrongArgumentsException to be thrown, but nothing was thrown.

1 个答案:

答案 0 :(得分:0)

我认为这是因为您的postForEntity()调用是异步的,并且测试没有等待调用的结果。

要进行检查,可以直接引发异常来替换对postForEntity()的调用。这样就可以满足测试中的断言。