我使用Scope
进行了一些specs2测试:
"hello" should {
"return world" in new Subject {
hello.get === "world"
}
}
trait Subject extends org.specs2.specification.Scope {
val hello = new Hello
}
现在我想将其转换为接受风格:
def is = s2"""
hello.get should return 'world' $e1
"""
def e1 = new Subject {
hello.get === "world"
}
trait Subject extends org.specs2.specification.Scope {
val hello = new Hello
}
它似乎正常运行,测试通过了,但很快我发现无论我如何修改它都不会失败:
hello.get === "invalid-world" // still passing
如何在接受方式中正确使用Scope
?
答案 0 :(得分:1)
刚刚发现此问题的问题:https://github.com/etorreborre/specs2/issues/180
从那里引用的答案:
这是可以预料的。范围是仅用于可变的特征 规格。你有两种解决方法:
使用案例类或案例对象
s2""" will fail ${t.fail} """ case object t { val foo = false def fail = foo must beTrue }
将
ThrownExpectations
特征与Specification
混合在一起,以便失败的预期将会出现'#34;冒泡" 范围特征之外