Saya memiliki kelas Halaman dan memiliki beberapa metode yang mengekstrak halaman Web. Sekarang saya ingin memanggil metode ini ke dalam blok Where of Spock untuk lulus sebagai penyedia data. Tetapi ketika saya memanggil metode itu maka itu menimbulkan kesalahan karena tidak menemukannya. Tetapi hal yang sama dapat diakses dari blok Where. Kenapa gitu?

Contoh

def "Validate all article has its id"(){
    when:"I am at Overview page"
    at OverviewPage

    then:"I should the article id of all article"
    getAllCountOf(articleInfo).size() ==  actualCount

    where:
    articleInfo                          |actualCount
    TopArticleListInfo.ARTICLE_THUMBNAIL |filter.getCount()

}

Dalam kode di atas 'filter.getCount()' tidak dapat diakses dari blok Where, Tetapi metode yang sama dapat diakses di blok when atau then.

Saya ingin memahami logika di balik layar Sepertinya, Di mana blok tidak dapat menemukan metode ini secara statis, perlu membuat objek untuk memanggil ini.

Ketika saya mencoba solusi yang diberikan oleh erdi, Tapi itu juga tidak menyelesaikan masalah

when:"I am at Overview page"
    at OverviewPage
    then:"I should the article id of all article"
    getAllCountOf(articleInfo).size() ==  page."$actualCount"

    where:
    articleInfo                          |actualCount
    TopArticleListInfo.ARTICLE_THUMBNAIL |'getRowCount().size()'

Di sini getRowCount().size() menggantikan "$actualCount". Tapi tetap saja itu melempar kesalahan

Pesan eror

GetAllCountOf(articleInfo).size() == halaman."$actualCount" | | | | | | | 10 | groovy.lang.MissingPropertyException: Tidak dapat menyelesaikan getRowCount().size() sebagai konten untuk inca.sundashboard.pageobject.OverviewPage, atau sebagai properti pada konteks Navigatornya. Apakah getRowCount().size() kelas yang lupa Anda impor? |

2
Perwez Alam 17 November 2017, 20:46

1 menjawab

Jawaban Terbaik

Saya menggunakan Nama Metode Dinamis dalam pengujian saya, berikut adalah contoh kecil :

def "Validate all article has its id"(){
    when: "I am at Overview page"
    at OverviewPage

    then: "I should the article id of all article"
    getAllCountOf(articleInfo).size() ==  "$actualCountMethod"().getCount()

    where:
    articleInfo                          | actualCountMethod
    TopArticleListInfo.ARTICLE_THUMBNAIL | filter

}

2
Royg 19 November 2017, 10:41