2017-09-28 12 views
2

내가 작업하고있는 웹 페이지에서 각 요소에 대해 정의 된 내용으로 모듈이 있습니다각 요소를 개별적으로 주장하지 않고 Spock을 사용하여 Geb 모듈의 전체 콘텐츠를 한 번에 확인하는 방법은 무엇입니까?

내 모듈에 포함 된 각 요소가 존재하지만 유일한 방법은 내가 아는 것을 주장하고 내 테스트 사양에서
package com.gdit.qa.fwa.geb.cmdr.modules 

import geb.Module 

class Member extends Module { 
    static content = { 
     // Member fields 
     mbrID {$("div.subject-details div.memberDetails input.projMbrId")} 
     mbrName {$("input.projMbrName")} 
     mbrRegion {$("select.projMbrReg")} 
     mbrAdd1 {$("input.projMbrAdd1")} 
     mbrAdd2 {$("input.projMbrAdd2")} 
     mbrAdd3 {$("input.projMbrAdd3")} 
     mbrCity {$("input.projMbrCity")} 
     mbrState {$("select.projMbrState")} 
     mbrZip {$("input.projMbrZip")} 
     mbrHomePhone {$("input.projMbrHomePhone")} 
     mbrHomePhoneExt {$("input.projMbrHomePhoneExt")} 
     mbrWrkPhone {$("input.projMbrWorkPhone")} 
     mbrWrkPhoneExt {$("input.projMbrWorkPhoneExt")} 
     mbrEmail {$("input.projMbrPersonalEMail")} 
     mbrWrkEmail {$("input.projMbrWorkEMail")} 
    } 
} 

한때에 모듈의 전체 내용을에 저를위한 방법이 있는지 궁금하고

package cmdr.ProjectCover 

import com.gdit.qa.fwa.geb.cmdr.pages.HomePage 
import com.gdit.qa.fwa.geb.cmdr.pages.ProjectCover 
import geb.spock.GebReportingSpec 

class VerifyMemberFields extends GebReportingSpec { 
    def setupSpec() { 
     // Log in to app 
     via HomePage 
     loginPage.signIn("marco", "abc123") 

     // Navigate to Member Page 
     memberPageButton.click() 
    } 

    def "Verify Member fields exist"() { 
     when: "User selects Member option for subject type" 
     at ProjectCover 
     projSubject.click() 
     projCoverMbrFields.projSubjectMbrOption.click() 

     then: "All expected member fields are displayed in the left panel" 
     assert projCoverMbrFields.mbrID.present 
     assert projCoverMbrFields.mbrName.present 
     assert projCoverMbrFields.mbrRegion.present 
     assert projCoverMbrFields.mbrAdd1.present 
     assert projCoverMbrFields.mbrAdd2.present 
     assert projCoverMbrFields.mbrAdd3.present 
     assert projCoverMbrFields.mbrCity.present 
     assert projCoverMbrFields.mbrState.present 
     assert projCoverMbrFields.mbrZip.present 
     assert projCoverMbrFields.mbrHomePhone.present 
     assert projCoverMbrFields.mbrHomePhoneExt.present 
     assert projCoverMbrFields.mbrWrkPhone.present 
     assert projCoverMbrFields.mbrWrkPhoneExt.present 
     assert projCoverMbrFields.mbrEmail.present 
     assert projCoverMbrFields.mbrWrkEmail.present 
    } 

을 (대신 개별적으로 내 모듈의 각 요소를 주장하는) 주장 : 어떻게 개별적으로 각 요소를 주장하는 것입니다 내 피쳐 메서드가 블록 조건을 줄일 수 있습니다.

답변

1

지금은 할 수있는 방법을 모르지만 GEB-369을 구현하면 가능하고 비교적 쉽습니다.

-1

나는 이것을 테스트 할 시간이 없어,하지만 난 당신이 그것을 시도주고 싶은 경우이 작업을해야한다고 생각 :

def "Verify Member fields exist"() { 
    when: "User selects Member option for subject type" 
    at ProjectCover 
    projSubject.click() 
    projCoverMbrFields.projSubjectMbrOption.click() 

    then: "All expected member fields are displayed in the left panel" 
    projCoverMbrFields.content.each{ element -> 
     assert element.present 
    } 
}