scala - Specs2 - 如何吞掉异常

标签 scala unit-testing mockito specs2

我使用specs2作为我的测试框架。 我想模拟一个用例,其中 actionA 返回失败的 future。 像这样:

  val actionA = mock[ActionA]
  val actionB = new ActionB(actionA)
  actionA.doSomthing(x) returns Future.failed(new Exception("bla"))
  try {
    Await.result(actionB.doSomthing(request), 1 seconds)
  }catch {
    case e: Exception => println("exception caught: " + e);
  }

问题是,如果我没有捕获到这个异常,我的测试就会退出,specs2 是否有更好的方法来吞掉异常? 有没有更好的方法来测试这种情况?

谢谢!

最佳答案

Await.result(actionB.doSomething(request), 1 seconds) must throwA[Exception]

通过 https://etorreborre.github.io/specs2/guide/SPECS2-5.2.0/org.specs2.guide.Matchers.html#for-exception-values -> 异常

关于scala - Specs2 - 如何吞掉异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33486163/

相关文章:

scala - 如何检查惰性val是否已初始化而不进行初始化?

.net - 您是否使用 TestInitialize 或测试类构造函数来准备每个测试?为什么?

powershell - Pester 模拟 CmdLets

unit-testing - 单元测试 Controller 时无法模拟 Grails 服务方法 - MissingMethodException

unit-testing - Mocking : Unit test question 中的依赖项太多

使用 play dist 出现 java.io.FileNotFoundException

java - 是否有任何库可以从 .class 文件(字节码)中提取类、方法、成员和字段依赖项名称?

java - Scala 中从 "for"返回与 Java 中从 "for"返回不同

java - 验证时 Powermock 的计数比实际调用的计数多

java - 从 scala 调用重载的 java 泛型方法