【发布时间】:2019-11-20 09:39:13
【问题描述】:
我有这个测试在端口7000 启动服务,并且在唯一的端点内我做了一个失败的断言:
@Test
fun `javalin assertion should fail`() {
Javalin.create()
.get("/") { assertTrue(false) }
.start()
newHttpClient().send(
HttpRequest.newBuilder()
.uri(URI.create("http://localhost:7000/"))
.GET().build(),
discarding()
)
}
问题是测试总是通过(但它应该失败):
(运行./gradlew test会发生同样的行为)
...即使有一个控制台输出声称测试失败:
[Test worker] INFO io.javalin.Javalin - Listening on http://localhost:7000/
[Test worker] INFO io.javalin.Javalin - Javalin started in 356ms \o/
[qtp2100106358-22] ERROR io.javalin.Javalin - Exception occurred while servicing http-request
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)
..
可能它正在另一个线程中运行,但我想知道是否有办法将它附加到相同的上下文中。 (奇怪的是,在我的应用程序的另一个场景中 - 我无法隔离 - 它正确地失败了。)
【问题讨论】:
标签: kotlin junit junit5 javalin