有没有可能在运行时创建spock测试?我试图在GebSpec中的循环中创建几个元方法,但在测试执行期间它们会被忽略。
或者有人可能建议任何解决方法?
提前致谢!
答案 0 :(得分:1)
正如@Tim所提到的,数据表是可行的方法。 您不需要在数据表中复制代码,您可以使它们完全动态化。
@Unroll
def "Check form submit params: '#login', '#pwd'. Expected - #result"(String login, String pwd, boolean result) {
setup:
// do your test
where: [login, pwd, result] << [ [ "user", "qwerty", true], [ "user", "1234", false] ]
}
请注意where子句中的嵌套数组。它实际上可以是在运行时创建的完全动态数组。
另请注意@Unroll
注释,因为它会为您提供很好的测试方法名称。
答案 1 :(得分:0)
你可以在where子句中简单地编写loop / sql查询。测试套件根据可能的数量运行。
示例:
@Unroll
def "test suite for each student"(){
given: ""
.......................
and : ""
.......................
then: ""
........................
where: ""
for (StudentList student : list){
//operations
//load the values in the variables such as there numbers or ids
}
}
如果10名学生的循环为真,则该套件将被执行10次