[英]Test sorting with Cucumber and Capybara
有沒有辦法用Cucumber和Capybara測試列表的排序。 使用javascript在客戶端完成排序。
我正在思考以下問題:
Then I should see "first element" and then I should see "second element"
不幸的是,我不知道如何構建這些步驟。
謝謝您的幫助!
將您正在測試的故事(您希望接近簡單的英語)和測試的實際實現(隱藏在step_definitions中)分開是一個好主意。
有幾種方法可以解決這個問題,具體取決於您要測試的內容。 在第一種情況下,cuke測試非常易讀,它歸結為正確實現步驟定義:
Given that I am on page xyz
And I have a list
Then I should see the list in sorted order
在這種情況下,您必須定義列表的含義(如果需要,可以在步驟def中將其分配給@list),然后按排序順序查看列表意味着什么(這里您可以通過正則表達式,確保您在第2項之前看到第1項,等等。)
或者,如果你想在cuke測試中更加冗長,你可以做類似的事情:
Given that I am on page xyz
Then I should see /item1.*item2.*item3/
假定列表已填充。
根據列表的位置,您可能必須使用within
內的參數。
請記住,黃瓜非常適合功能和集成測試,但可能不是單元測試排序的正確工具(查看所有邊緣情況)。 為了測試單元測試級別的排序,我強烈建議使用QUnit。 由於QUnit測試是靜態頁面,嘗試這個技巧來運行測試作為capybara的一部分:
Given I am on "/test/path/to/qunit/tests"
Then I should see "Whatever Title You have Assigned"
And I should see "0" within "//p[@id='qunit-testresult']/span/[@class='failed']"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.