Gui*_*ose 26 specs scala scalatest
我在Scala中使用Specs2和ScalaTest来处理BDD.当我断言不应该抛出给定的异常时,我已经在Specs2中写下了期望.
"do something" in {
{
....
} must not(throwA[MyException])
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在ScalaTest中编写等效的代码:
"do something" in {
evaluating {
....
} should not produce[MyException]
}
Run Code Online (Sandbox Code Playgroud)
但这不编译,我找不到这样做的方法.这甚至可能吗?
提前谢谢了.
Wol*_*old 50
当前版本的ScalaTest支持这一点:
noException should be thrownBy 0 / 1
Run Code Online (Sandbox Code Playgroud)
查看文档.
这是不可能直接在ScalaTest的最新版本,因为该方法should
的EvaluatingApplicationShouldWrapper
不具有过载,需要一个NotWord
,只有一个需要ResultOfProduceInvocation[T]
.
我建议只是让不受欢迎的异常发生,这将导致测试失败.这是经典的方式.
但是如果你觉得你需要更清楚地知道什么是失败的,你可以使用try
- catch
块来处理错误.如果您发现了您不希望发生的错误,请通过调用该fail
方法来处理异常:
fail("That expression shouldn't have thrown a MyExceptionType exception")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10858 次 |
最近记录: |