5

我遇到了失败的测试,在我所有的理解中应该通过。我在这里遗漏了一些明显的东西吗?

import org.scalatest._

class xxxTests extends FlatSpec with ShouldMatchers {
  import math.{Pi => PI}

  "" should "(this should pass)" in {
    assert( 0.0 === 0.0 )  // ok

    (1e-100) should equal ((0.0) plusOrMinus 1e-5)    // FAILS!!!  "1.0E-100 did not equal DoubleTolerance(0.0,1.0E-5)"
    (1e-3) should not equal ((0.0) plusOrMinus 1e-5)    // ok
    (0.0) should equal ((0.0) plusOrMinus 1e-5)    // FAILS!!!  "0.0 did not equal DoubleTolerance(0.0,1.0E-5)"
  }
}

我在 Scalatest 1.8 和 2.0M4 都经历过这种情况。

4

1 回答 1

8

问题:必须使用be,而不是equal

离开这里是我愚蠢的表现(嗯,注意力不集中)。

https://groups.google.com/forum/?fromgroups=#!msg/scalatest-users/pb54GzOej6I/C9714h_OW_UJ

您必须使用 plusOrMinus 和“be”而不是“equal”。"equal" 总是通过在一个对象上调用 == 来比较相等性,并传入另一个对象。“be”根据传递的对象做不同的事情。所以试试:

0.5 必须是(0.5 加或减 0.1)

于 2012-10-19T08:35:36.403 回答