我正在编写一个与 REST 应用程序一起使用的测试 spock 项目,该应用程序又与数据库一起使用。
问题在于,当拉取其余请求时,infa 没有时间写入数据库,您必须发明这些东西。
如何实现在满足某些条件之前执行的方法。我能够实现的只是:
class Helper {
static def waitForResponse(Closure closure, int size = 1) {
int count = 0
BaseResponse response = closure.call()
while (response.body.size != size && count <= 15) {
response = closure.call()
log.info("try to get response, count: ${count}, response: ${response}")
if (response.body.size != size) {
sleep 200
}
count++
}
checkSuccess(response)
return response.body
}
}
}
这只能满足那些格式为表格的请求,即使那样它也不能完全按照我需要的方式工作。响应可能是 List<Mar>
你需要类似的东西:
class Waiter {
BaseResponse response = waitForResponse({someMetod(someParam)}, it.someField == "someValue")
// либо
BaseResponse response = waitForResponse({someMetod(someParam)}, {it.someField == "someValue"})
}
那些。someMetod(someParam) 将每隔 200ms 执行一次,直到满足条件或尝试用完
也许我根本就挖错了草原,还有更优雅的东西?
PS我只是一个测试人员,所以关于如何优化数据库工作的建议不太可能帮助我:(