Проект SoapUI может запускать случайный скрипт при загрузке. Сценарий загрузки вызывается с переменными журнала и проекта.
В моей общей библиотеке у меня есть метод addAsserts(), который проходит через весь проект и добавляет утверждения соответствия схеме к этапам тестирования SOAP. В моем сценарии загрузки я вызываю общий метод
addAsserts(this)
передача «this» в качестве параметра и установка для него closure.delegate внутри метода addAsserts, чтобы сделать переменную «project» доступной в области закрытия
Метод addAsserts определен в sharedUtil.groovy:
static def addAsserts(that){
def closure={
project.testSuites.each { testSuiteName, testSuiteObject ->
testSuiteObject.testCases.each { testCaseName, testCaseObject ->
testCaseObject.testSteps.each { testStepName, testStepObject ->
if ("class com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep" == testStepObject.getClass().toString() ) {
log.info "adding 'Schema Compliance' assertion to ${testSuiteName}/${testCaseName}/${testStepName}"
testStepObject.addAssertion('Schema Compliance')
}
}
}
}
}//closure
closure.delegate=that // <--- i would like NOT to pass 'that' as parameter
// but rather detect in runtime with some kind of
// getCallerInstance() method
return closure.call()
}
ВОПРОС:
Можно ли обнаружить экземпляр вызывающего абонента во время выполнения с помощью какого-либо метода getCallerInstance()?