1

我无法MockitoSugarAsyncFunSuite. 简而言之:

此示例有效(取自Scalatest 文档

class AddSuite extends AsyncFunSuite {

  def addSoon(addends: Int*): Future[Int] = Future { addends.sum }

  test("addSoon will eventually compute a sum of passed Ints") {
    val futureSum: Future[Int] = addSoon(1, 2)
    futureSum map { sum => assert(sum == 3) }
  }

}

但是这个例子没有(因为它有MockitoSugar

class AddSuite extends AsyncFunSuite with MockitoSugar {

  def addSoon(addends: Int*): Future[Int] = Future { addends.sum }

  test("addSoon will eventually compute a sum of passed Ints") {
    val futureSum: Future[Int] = addSoon(1, 2)
    futureSum map { sum => assert(sum == 3) }
  }

}

两者都编译,但后者报告了零测试,而前者则正确报告了一个测试。这发生在 IntelliJ 和 sbt 上。为什么这不起作用?我该如何解决这个问题?

我在用着:

  • 斯卡拉 2.12
  • scalatest 3.1.1
  • 模拟核心 3.3.3
  • mockito-scala 1.13.10
4

1 回答 1

2

没关系,在查看了 mockito-scala 代码库后发现。我应该使用AsyncMockitoSugar而不是MockitoSugar. 所以应该是:

class AddSuite extends AsyncFunSuite with AsyncMockitoSugar {

  def addSoon(addends: Int*): Future[Int] = Future { addends.sum }

  test("addSoon will eventually compute a sum of passed Ints") {
    val futureSum: Future[Int] = addSoon(1, 2)
    futureSum map { sum => assert(sum == 3) }
  }

}
于 2020-06-12T10:25:31.997 回答