我有以下Groovy脚本:
剧本很棒
package groovy
def sayHi = "hi"
以及它的测试规范。**注:**这只是一个理论,不是我的一个严肃的方法。只是想告诉你我试图实现什么。
脚本规范
import spock.lang.Specification
import spock.lang.Unroll
import groovy.TheScript // what to do instead?
class TheScriptTest extends Specification {
def "Test One"() {
expect:
sayHi() == "hi" // sayHi() does not exist - how to call the field?
}
}
抛出的错误肯定地告诉我没有为**TheScriptTest.sayHi()**定义任何内容--这很好,我理解这个错误
3条答案
按热度按时间3vpjnl9f1#
看起来你的问题是你在脚本中定义了一个变量“def sayHi”,然后在测试中你把它当作一个方法来调用。
注意:我认为在Groovy中“return”一词是不必要的。
eyh26e7m2#
您需要创建脚本
sayHi.groovy
在Groovy中,我们可以在脚本中添加一个名为call的方法,然后在不使用name call的情况下调用该方法,我们只需在对象示例上输入括号和可选参数,Groovy称之为call运算符:()
lawou6xi3#
您可以使用new获得脚本
TheScript.groovy
的示例,然后调用它的run()
方法。您的测试应如下所示: