我在Scala中使用Specs2和ScalaTest来处理BDD。当我断言不应该抛出给定的异常时,我已经在Specs2中写下了期望。
"do something" in {
{
....
} must not(throwA[MyException])
}
我希望能够在ScalaTest中编写等效内容,如:
"do something" in {
evaluating {
....
} should not produce[MyException]
}
但这不能编译,我找不到这样做的方法。这甚至可能吗?
非常感谢提前。
答案 0 :(得分:44)
答案 1 :(得分:6)
这不可能直接在最新版本的ScalaTest中使用,因为should
的方法EvaluatingApplicationShouldWrapper
没有带NotWord
的重载,只有一个ResultOfProduceInvocation[T]
}}
我建议只是让不需要的异常发生,这将导致测试失败。这是经典的方式。
但如果您觉得需要更准确地了解失败的原因,可以使用try
- catch
块来处理错误。如果你发现了你不想发生的错误,请通过调用fail
方法来处理异常:
fail("That expression shouldn't have thrown a MyExceptionType exception")