Как использовать локальную переменную в тесте спока в другом классе? - PullRequest
0 голосов
/ 31 января 2020

Я хочу использовать «dashVer» в StartupTest. groovy в Zip. groovy, но «dashVer» в Zip. groovy вернуть в «null». Подробнее см. Ниже, большое спасибо !!!!

StartupTest. groovy

class StartupTest extends Specification {

String dashVer

void updateGlobalString(String dashVersion){
    dashVer=dashVersion
}

def 'Start_test'() {
    setup:
    .......

    when: 'Test started'
    String dashVersion= new GetDashVer().Get_dash_ver().toString()
    println(dashVersion) //Eg.the result is 3.3.3 return from GetDashVer class sucessfully
    updateGlobalString(dashVersion)

    and:
    ...

    then:
    ...

}
}

Zip. groovy

class ZipUploadSlack {

//Attempt 1
StartupTest test = new StartupTest()
String dashVer111 = test.updateGlobalString()

//Attept 2
//StartupTest test = new StartupTest()
//String dashVer111 = test.dashVer

 def 'Zip'(){

    println(dashVer111) //This should be return in 3.3.3, but it is "null" for now for both attepts
}
}

1 Ответ

0 голосов
/ 02 февраля 2020

@ Джейкоб Аае Миккельсен, спасибо за совет. Кажется, STATI c переменная рабочая. Только что попробовал с ниже:

Startuptest. groovy

class StartupTest extends Specification {

static String dashbVer
static Integer errorCount

String updateGlobalString(String dashVersion){
    dashVer=dashVersion
    return dashVer
}

Integer updateGlobalInteger(Integer errorC){
    errorCount=errorC
    return errorCount
}

void updateGlobalString(String dashVersion){
dashVer=dashVersion
}

def 'Start_test'() {
setup:
.......

when: 'Test started'
String dashVersion= new GetDashVer().Get_dash_ver().toString()
println(dashVersion) //Eg.the result is 3.3.3 return from GetDashVer class sucessfully
updateGlobalString(dashVersion)

and:
...

then: 'No error log found'
def error = dash.logFinder.search(/\(ERROR\)/)
error.isEmpty() //Let says it is true, it is empty as no error found
int errorC = error.size() as Integer //.size is using List.java, @return the number of elements in this list

println(errorC) //Here return as 0 as expected
updateGlobalInteger(errorC) // Here return with error, "condition not satisfied groovy"

}
}

Zip. groovy

class ZipUploadSlack {
//Obtain dashVer
StartupTest test = new StartupTest()
String dashVer111 = test.dashVer

def 'Zip'(){
println(dashVer111) //This can return correct dashVer now
}
}

Мой новый вопрос: почему существует «условие не выполнено groovy "ошибка при выполнении updateGlobalInteger (ошибка C)? ошибка C является целым числом, а функция updateGlobalInteger возвращает целое число, почему не удалось? Спасибо !!!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...