在Scala规范中,什么是;“必须”;功能?

在Scala规范中,什么是;“必须”;功能?,scala,specs,Scala,Specs,我正在进行一些规范测试,我试图了解“必须”函数是什么,以及它的作用 我在specs源代码的任何地方都找不到它的声明或实现,我正试图了解它的功能 下面是它的一些示例用法: "hello world".size must be equalTo(11) "hello world" must be matching("h.* w.*") stack.push(11) must throwAn[Error] 在我看来,“必须”将函数作为参数,但我想知道“必须”的实际签名,以及它对参数的作用 谁能给我指出

我正在进行一些规范测试,我试图了解“必须”函数是什么,以及它的作用

我在specs源代码的任何地方都找不到它的声明或实现,我正试图了解它的功能

下面是它的一些示例用法:

"hello world".size must be equalTo(11)
"hello world" must be matching("h.* w.*")
stack.push(11) must throwAn[Error]
在我看来,“必须”将函数作为参数,但我想知道“必须”的实际签名,以及它对参数的作用

谁能给我指出正确的方向吗


谢谢

上有文档,对
must
should
的用法有详细解释,至少在Specs2.0中,您可以在中找到must的定义

特性在此声明相关的隐式转换:

/**
 * This trait provides implicit definitions to transform any value into a MustExpectable
 */
trait MustExpectations extends Expectations {
  implicit def akaMust[T](tm: Expectable[T]) = new MustExpectable(() => tm.value) {
    override private[specs2] val desc = tm.desc
  }
  implicit def theValue[T](t: =>T): MustExpectable[T] = createMustExpectable(t)
  implicit def theBlock(t: =>Nothing): MustExpectable[Nothing] = createMustExpectable(t)

  protected def createMustExpectable[T](t: =>T) = MustExpectable(t)
}
object MustExpectations extends MustExpectations
/**
 * This trait provides implicit definitions to transform any value into a MustExpectable
 */
trait MustExpectations extends Expectations {
  implicit def akaMust[T](tm: Expectable[T]) = new MustExpectable(() => tm.value) {
    override private[specs2] val desc = tm.desc
  }
  implicit def theValue[T](t: =>T): MustExpectable[T] = createMustExpectable(t)
  implicit def theBlock(t: =>Nothing): MustExpectable[Nothing] = createMustExpectable(t)

  protected def createMustExpectable[T](t: =>T) = MustExpectable(t)
}
object MustExpectations extends MustExpectations