当我尝试运行我的测试时,我得到了这个例外:
groovy.lang.MissingPropertyException: Unable to resolve code as content for pages FactIndexPage, or as a property on its Navigator context. Is code a class you forgot to import?
这是我的测试类
import geb.spock.GebReportingSpec
import pages.*
import spock.lang.Stepwise
@Stepwise
class FactControllerSpec extends GebReportingSpec {
def "test de la presence du code dans la page d'acceuil"() {
given: "test que le champ code de facture est bien present"
when:
to IndexFactPage
then: $("form", name: code).find("input", type: "button")
}
}
在描述我的网页内容的班级下方
import geb.Page
类IndexFactPage扩展了页面{
static url = "/fact/mmapay"
static at = {
$("h2").text() == "Pour régler votre facture, veuillez saisir:" }
static content = {
codeField { $("input[name = code]") }
nomField { $("input[name = nom]") }
prenomField { $("input[name = prenom]") }
montantField { $("input[name = montant]") }
chercher1 { $("input", type: "button") }
abandonner1 { $("input", type: "button") }
}
}
请帮我解决我的类IndexFactPage作为内容页面..
提前谢谢..
答案 0 :(得分:0)
导致您出现问题的部分是 $("表格",名称:代码)。
$("表格",名称:"代码")会找到一个名为代码的表单,这可能不是您所要求的之后根据你的页面和规范片段。
在没有看到页面来源的情况下,无法提供正确的解决方案,但是您的 IndexFactPage
中有一些观察结果static content = {
codeField { $("input[name = code]") }
nomField { $("input[name = nom]") }
prenomField { $("input[name = prenom]") }
montantField { $("input[name = montant]") }
chercher1 { $("input", type: "button") }
abandonner1 { $("input", type: "button") }
}
这些字段 codeField , nomField , prenomField 和 montantField 都看起来像是映射到单个字段但是 chercher1 和 abandonner1 会选择相同的按钮。
根据您的规范声明的目的,那么您的规范可能应该如此 -
import geb.spock.GebReportingSpec
import pages.*
import spock.lang.Stepwise
@Stepwise
class FactControllerSpec extends GebReportingSpec {
def "test the presence of the code field on the home page"() {
when: "we are on the home page"
to IndexFactPage
then: "the code field is present"
codeField.present
}
}