Specs2 运行 测试之外的匹配器 class 在匿名内部 class
Specs2 running a matcher outside of the test class in an anonymous inner class
我正在运行进行以下测试:
class FooTest extends SpecWithJUnit with MockServer {
"Foo" should {
"fail" in new ctx {
givenAListenerThatAlwaysFailsWhenExcecuted()
foo.runMethodThatInvokesAListener
}
}
}
trait MockServer extends BeforeAfterAll with MustMatchers {
private val wireMockServer = new WireMockServer(wireMockConfig().port(9000))
def givenAListenerThatAlwaysFailsWhenExcecuted() = {
val listener = new RequestListener {
override def requestReceived(request: Request, response: Response): Unit = {
true must beFalse
}
}
wireMockServer.addMockServiceRequestListener(listener)
listener
}
override def beforeAll(): Unit = wireMockServer.start()
override def afterAll(): Unit = wireMockServer.stop()
}
当我 运行 它时,我在控制台中看到了异常,但测试本身并没有失败。我如何让它失败?
您必须使用 MustThrownMatchers
而不是 MustMatchers
,这样任何失败的预期(例如 true must beFalse
都会被抛出 new ctx { ... }
。
否则 true must beFalse
只是一个简单的 MatchResult[Boolean]
值,它很高兴在匿名 ctx
class.
的主体内创建
我正在运行进行以下测试:
class FooTest extends SpecWithJUnit with MockServer {
"Foo" should {
"fail" in new ctx {
givenAListenerThatAlwaysFailsWhenExcecuted()
foo.runMethodThatInvokesAListener
}
}
}
trait MockServer extends BeforeAfterAll with MustMatchers {
private val wireMockServer = new WireMockServer(wireMockConfig().port(9000))
def givenAListenerThatAlwaysFailsWhenExcecuted() = {
val listener = new RequestListener {
override def requestReceived(request: Request, response: Response): Unit = {
true must beFalse
}
}
wireMockServer.addMockServiceRequestListener(listener)
listener
}
override def beforeAll(): Unit = wireMockServer.start()
override def afterAll(): Unit = wireMockServer.stop()
}
当我 运行 它时,我在控制台中看到了异常,但测试本身并没有失败。我如何让它失败?
您必须使用 MustThrownMatchers
而不是 MustMatchers
,这样任何失败的预期(例如 true must beFalse
都会被抛出 new ctx { ... }
。
否则 true must beFalse
只是一个简单的 MatchResult[Boolean]
值,它很高兴在匿名 ctx
class.