我在 Scala (v2.9.1) 上使用 specs2 (v1.8.2) 来编写验收测试。按照 http://etorreborre.github.com/specs2/guide/org.specs2.guide.SpecStructure.html#Contexts 的示例,我有以下规范和上下文案例类:

import org.specs2._


class testspec extends SpecificationWithJUnit { def is =

    "test should" ^
        "run a test in a context" ! context().e1

}

case class context() {

    def e1 = 1 must beEqualTo(1)
}

我收到编译器错误:



编译上下文案例类时。

显然,我是 specs2(以及 Scala)的新手。对适当文档的引用将不胜感激。

最佳答案

显然文档是错误的(错了,我现在修复了它)。

为上下文声明 case 类的正确方法通常是将其包含在 Specification 范围中:

import org.specs2._

class ContextSpec extends Specification { def is =
  "this is the first example" ! context().e1

  case class context() {
    def e1 = List(1,2,3) must have size(3)
  }
}

否则,如果你想在另一个规范中重用上下文,你可以像 Dario 写的那样,通过导入 MustMatchers 对象方法或通过继承 MustMatchers 特性来访问 MustMatchers 功能。

关于scala - specs2 验收测试中的案例类上下文 : "must is not a member of Int",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9638116/

10-11 08:17