2011-05-04 107 views
1

我已經介紹了ajaxy表排序到我的應用程序,並且我想設置黃瓜測試來測試javascript支持和javascript不支持時的功能。如何使用javascript支持測試senario並且不支持javascript?

我正在使用水豚,所以如果我使用國旗@javascript,它將運行與JavaScript驅動程序的測試。他們的國旗是否會用JavaScript運行一次場景一次,並且一次沒有?

像下面這樣...

@test-both-javascript-and-non-javascript 
    Scenario: Table Search 
    When I fill in "search" with "Jonathan" 
    And I press "Search" 
    Then I should see the following users: 
     | Jonathan | Smith | [email protected] | active | 
+0

我有同樣的問題,我想支持一個功能,當啓用js和一個普通的頁面重新加載時,沒有JS。 – 2013-04-17 00:17:21

回答

0

是行爲真的一樣的,不管是否啓用JavaScript或禁用?如果是這樣,爲什麼你使用JavaScript? ;-)

我懷疑,無論啓用還是禁用JavaScript,行爲都會有所不同。因此,您應該有兩種情景來描述每種情況的行爲,例如當您輸入時,JavaScript版本是否會顯示結果?

+1

如果該功能與使用頁面重新加載或ajax更新的分頁功能相同,該怎麼辦? – 2013-04-17 00:18:06

0

我不建議在單次運行中啓用和禁用Javascript支持。

相反,標記您需要的場景(或不需要,由您決定)javascript並運行它們。您可能會發現,您需要重複一些場景來覆蓋不同的行爲,但這是值得的,因爲您只會重複該功能而不是實施。

最後,您可能還想使用不同的驅動程序來運行這樣的場景,因此您可以按照說的方式僅在「一個盒子」中包含您的測試套件。

2

使用@javascript開關驅動程序從默認值轉換爲可以在您的頁面上運行javascript的驅動程序。留下@javascript並不意味着您正在測試「何時不支持javascript」或「沒有javascript支持」。在<noscript>Javascript is not supported.</noscript>頁面上測試Then I should see "Javascript is not supported"將使用默認驅動程序(即沒有@javascript標籤)失敗。

如果你真的想用不支持的javascript測試,你應該配置一個禁用javascript的新驅動程序,並使用一個新標籤(例如@nojavascript)切換到Before('@nojavascript')塊中的那個驅動程序並切換回After('@nojavascript')區塊中的默認值。然後,您可以使用該標記專門編寫場景,並在需要檢查javascript何時禁用的情況下重複場景。