我正在尝试使用 specs2 在 Scala 中运行一些测试,但是我遇到了一些未执行的测试用例的问题。
这是一个最小的例子来说明我的问题。
BaseSpec.scala
package foo
import org.specs2.mutable._
trait BaseSpec extends Specification {
println("global init")
trait BeforeAfterScope extends BeforeAfter {
def before = println("before")
def after = println("after")
}
}
FooSpec.scala
package foo
import org.specs2.mutable._
class FooSpec extends BaseSpec {
"foo" should {
"run specs" in new BeforeAfterScope {
"should fail" in {
true must beFalse
}
}
}
}
我希望测试失败,但是嵌套in
语句中的“应该失败”的情况似乎没有被执行。
如果我删除嵌套in
语句或BeforeAfterScope
,测试行为正确,所以我想我遗漏了一些东西,但我没有设法在文档中找到它。
[编辑]
在我的用例中,我目前正在方法中填充数据库并在before
方法中清理它after
。但是,我希望能够有几个测试用例,而无需在每个测试用例之间再次清理和填充数据库。这样做的正确方法是什么?