我想问一个简短的问题。
有没有办法在特定测试之前和之后运行一些代码?
想象一下,我希望在特定测试之前和之后执行一些环境设置代码,但不是在所有测试中都执行。
我已经尝试定义一个函数来为我做这个,并且只是在测试的开始和结束时调用该函数。它工作正常,但如果测试失败,我最后调用的函数不会被调用(因为测试失败)。
有没有办法限制beforeAndAfter trait仅在特定测试中执行?
感谢。
答案 0 :(得分:3)
你可以这样做(或者这个的变体):
def beforeAfter[T](before: =>Unit, after: =>Unit)(t: =>T) = {
before
try t
finally after
}
然后
beforeAfter(before = action1, after = action2) {
test
}