Unit testing 我可以在Spock的cleanupSpec()中调用setupSpec()吗

Unit testing 我可以在Spock的cleanupSpec()中调用setupSpec()吗,unit-testing,groovy,spock,Unit Testing,Groovy,Spock,在setupSpec()中,我有很多代码来清理myDB并用特定数据填充它。在套装中执行测试后,我想用与开始时相同的数据清理并重新填充它,因此在cleanupSpec中,我想调用setupSpec() 但在此之后,我的数据库不是默认状态。那么如何以正确的方式做呢?我找到了。我必须调用super.setupSpec(),因为我的测试用例扩展了另一个。这就是为什么只有setupSpec()在setupSpec()中什么都没有发生的原因,我有很多代码要清理myDB-为什么?它不应该属于cleanup()

setupSpec()中,我有很多代码来清理myDB并用特定数据填充它。在套装中执行测试后,我想用与开始时相同的数据清理并重新填充它,因此在cleanupSpec中,我想调用setupSpec()


但在此之后,我的数据库不是默认状态。那么如何以正确的方式做呢?

我找到了。我必须调用
super.setupSpec()
,因为我的测试用例扩展了另一个。这就是为什么只有
setupSpec
()在setupSpec()中什么都没有发生的原因,我有很多代码要清理myDB-为什么?它不应该属于
cleanup()
和/或
cleanupSpec()
directlyOk不仅可以清理,而且可以清理和填充特定数据。我将编辑它。然后将清理部分移动到一个私有方法,该方法可以从
setupSpec()
cleanupSpec()
调用。我只需要在这个测试用例(例外情况)的末尾进行清理,所以我不想重构其他1000个测试类中使用的代码,所以我只想调用setupSpec()有可能吗?@Xelian您应该自己添加一个答案并接受它。它是否像我尝试时那样工作?我遇到了错误,例如不需要显式放置框架已经处理过的超级关键字。
def cleanupSpec(){
   setupSpec()
}