如何使用具有双重类型的ShouldVerb?

时间:2016-09-06 10:57:05

标签: scala scalatest

我不熟悉使用完全成熟的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

1 个答案:

答案 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)
  }

}