我偶尔遇到一种情况,我需要确保一个测试在另一个测试之前(成功)执行。
例如:
"The SecurityManager" should {
"make sure an administrative user exists" in new WithApplication with GPAuthenticationTestUtility {
checkPrerequisiteAccounts(prerequisiteAccounts)
}
"get an account id from a token" in new WithApplication with GPAuthenticationTestUtility {
val token = authenticate(prerequisiteAccounts.head)
token.isSuccess must beTrue
myId = GPSecurityController.getAccountId(token.get)
myId != None must beTrue
myId.get.toInt > 0 must beTrue
}
第一个测试将创建admin用户(如果它不存在)。第二个测试使用该帐户进行测试。
我知道我可以在specs2中进行前/后治疗(虽然我从来没有做过)。但是我真的不希望checkPrerequisiteAccounts
在每次测试之前运行,就在第一次测试执行之前......在开始做任何事情之前,先做一下,做一件事...... "
任何人都知道是否有办法将特定测试标记为"先做"或者"先做其他事情?"
答案 0 :(得分:3)
您可以在测试之间添加“步骤”以强制执行某些顺序性:
"make sure an administrative user exists" in ok
step("admin is created".pp)
"get an account id from a token" in ok
答案 1 :(得分:2)
您还可以在规范中添加顺序,例如顺序执行测试。
class MySpec extends mutable.Specification {
sequential
// rest follows
behaviour one
behaviour two
}