我试图从另一个模块中引用一个模块,但它没有按预期工作。我不知道我哪里出错了所以我会让我的代码示例/堆栈跟踪进行说话。
主要测试规范:
class TestSpec extends GebReportingSpec {
//bunch of code yada yada
def "someFeatureMethod"(){
at Page1
module1.doThing()
}
}
这是Page1的样子:
class Page1 extends Page {
static content = {
module1 { module(new Module1())}
}
}
这是Module1的样子:
class Module1 extends Module{
static content = {
module2 {module(new Module2())} //not going to type it out but assume module2 has a method named someFunction2()
}
def doThing(){
//This is where I am unsure the most. I have tried a few different things in this section
browser.at Page1
module1.module2.someFunction2()
}
}
我的堆栈跟踪是这样的:
groovy.lang.MissingPropertyException: Unable to resolve module1 as content for Page1 -> module1: Module1, or as a property on its Navigator context. Is module1 a class you forgot to import?
我确实导入了所有可能的东西。
如果可能的话,我想要的是能够在模块内部有一个模块,请解释它是如何实现的。谢谢。
答案 0 :(得分:0)
doThing()方法中的正确语法如下:
{{1}}
当我早些尝试这个时,我实际上有一个类型 - 这就是为什么我很困惑。修复我测试的类型后,这个设置有效。