找不到:值assertThrows

时间:2016-08-28 18:10:35

标签: scala scalatest

我有以下测试类:

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文档,与我类似的代码似乎工作正常。

问题是什么?

1 个答案:

答案 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
    }
  }