我在 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/