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)"
  }
}

私は Scaltest 1.8 と 2.0M4 の両方でこれを経験しました。

4

1 に答える 1

8

問題:beではなくを使用する必要がありますequal

私の愚かさのしるしとしてここを去ります(ええと、集中力の欠如)。

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

「equal」ではなく「be」を指定して plusOrMinus を使用する必要があります。"equal" は、一方のオブジェクトで == を呼び出し、もう一方のオブジェクトを渡すことにより、常に等しいかどうかを比較します。「be」は、渡されるオブジェクトに応じてさまざまなことを行います。だから試してみてください:

0.5 は (0.5 プラスまたはマイナス 0.1) でなければなりません

于 2012-10-19T08:35:36.403 に答える