specs2 - 如何在测试本身周围和内部使用相同的变量?
specs2 - how to use the same variable inside around and inside the test itself?
我正在使用 specs2 作为我的测试框架。
我想生成一个在测试本身中可用的 uniq 密钥。
def around[R: AsResult](r: => R): Result = {
val uniqueToken = before()
try AsResult(r)(uniqueToken)
finally after(uniqueToken)
}
"foo" should {
"bar" in {
do something with uniqueToken
}
}
找不到任何好的方法..
有什么想法吗?
你应该从这个伪代码中得到一般的想法:
class Around[R: AsResult](r: => R) {
val uniqueToken = before()
try AsResult(r)(uniqueToken)
finally after(uniqueToken)
}
"foo" should {
"bar" in new Around(r) {
do something with uniqueToken
}
}
你可以这样写
class MySpec extends Specification with ForEach[Token] {
"foo" should {
"do something" in { token: Token =>
ok
}
}
def foreach[R : AsResult](f: Token => R): Result = {
val token = createToken
try AsResult(f(token))
finally cleanup(token)
}
}
这已记录在案 here。
我正在使用 specs2 作为我的测试框架。 我想生成一个在测试本身中可用的 uniq 密钥。
def around[R: AsResult](r: => R): Result = {
val uniqueToken = before()
try AsResult(r)(uniqueToken)
finally after(uniqueToken)
}
"foo" should {
"bar" in {
do something with uniqueToken
}
}
找不到任何好的方法.. 有什么想法吗?
你应该从这个伪代码中得到一般的想法:
class Around[R: AsResult](r: => R) {
val uniqueToken = before()
try AsResult(r)(uniqueToken)
finally after(uniqueToken)
}
"foo" should {
"bar" in new Around(r) {
do something with uniqueToken
}
}
你可以这样写
class MySpec extends Specification with ForEach[Token] {
"foo" should {
"do something" in { token: Token =>
ok
}
}
def foreach[R : AsResult](f: Token => R): Result = {
val token = createToken
try AsResult(f(token))
finally cleanup(token)
}
}
这已记录在案 here。