我遇到了失败的测试,在我的所有理解中都应该通过.我错过了一些明显的东西吗?
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)"
}
}
Run Code Online (Sandbox Code Playgroud)
我在Scalatest 1.8和2.0M4上都经历过这种情况.
问题:必须使用be,而不是equal.
离开这里是我愚蠢的表现(恍惚,缺乏专注).
https://groups.google.com/forum/?fromgroups=#!msg/scalatest-users/pb54GzOej6I/C9714h_OW_UJ
你必须使用plusOrMinus,"be"不是"相等"."equal"总是通过在一个对象上调用==,传入另一个对象来比较相等性."be"根据传递的对象做不同的事情.所以尝试:
0.5必须是(0.5 plusOrMinus 0.1)
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |