我不熟悉使用完全成熟的scalatest和版本3.0.0中相对较新的ShouldVerb
(ex ShouldMatchers
)。我想测试的是以下内容:
import org.scalatest.FunSuite
import org.scalatest.words.ShouldVerb
class MyFunTest extends FunTest with ShouldVerb {
test("the world makes sense") {
math.abs(1.0 - (1.0 - 1e-10)) should be < 1e-9
}
}
但这会导致编译错误:
value should is not a member of Double
答案 0 :(得分:1)
文档声明ShouldVerb&#34; 提供隐式转换,将String方法添加到String以支持FlatSpec,WordSpec,fixture.FlatSpec和fixture.WordSpec的语法。&#34;
因此,Double
不会用 should 动词(仅String
)隐式修饰。
如果你想使用动词样式,可以使用以下替代(但可以说是更详细的)断言版本。
import org.scalatest.{ FlatSpecLike, Matchers }
class MathTests extends FlatSpecLike with Matchers {
"Behavior of math.abs" should "return an absolute number blah blah blah..." in {
assert(math.abs(1.0 - (1.0 - 1e-10)) < 1e-9)
}
}