我有以下测试类:
import org.scalatest.FunSuite
@RunWith(classOf[JUnitRunner])
class NodeScalaSuite extends FunSuite {
使用此测试方法:
test("Now doesn't terminate future that's not done") {
val testFuture: Future[Int] = Future{
wait(1000)
10
}
assertThrows[NoSuchElementException]{
testFuture.now
}
}
我收到此错误:
not found: value assertThrows
我从这里http://doc.scalatest.org/3.0.0/#org.scalatest.FunSuite查看了ScalaTest文档,与我类似的代码似乎工作正常。
问题是什么?
答案 0 :(得分:19)
我也只是遇到了这个问题 - 但正如评论中所提到的,这是我正在使用的scala测试版本。直到2.2.6之后才会引入assertThrows
- 升级到3.0.0(如果可以)将使其成为可能:请参阅此处引用文档的旧版本:http://doc.scalatest.org/2.2.6/#org.scalatest.FunSuite
如果无法升级,以前断言异常的方法是使用intercept
方法:
test("Invoking head on an empty Set should produce NoSuchElementException") {
intercept[NoSuchElementException] {
Set.empty.head
}
}