2014-03-13 34 views
1

我在電子商務網站的結帳頁面上使用Stripe JS。當在瀏覽器中手動測試時,流程工作得很好。但隨着黃瓜自動化測試的時候,我提交表單時收到以下錯誤:當使用Cucumber進行測試時Stripe JS失敗

發生意外錯誤提交您的信用卡給我們的 安全信用卡處理器。這可能是由於網絡連接問題 ,所以你應該再試一次(你不會被收取兩次)。如果這個 問題仍然存在,請讓我們知道!

Stripe JS不能在測試環境中工作,但在開發+生產中很好嗎?

+0

完整的博客文章如果您登錄到條帶化和去日誌可你看到請求信息? – CWitty

+0

@CWitty條紋日誌不顯示任何假設的請求。 –

回答

1

我不是條紋JS專家,但是當我在大多數情況下與黃瓜+ JS的問題有兩個選擇:

  1. 我之前需要的功能/場景(明顯的問題)來添加@javascript標籤

  2. 沒有與JS功能的步驟之前,需要一定的延遲:

    When /^wait (\d) sec$/ do |delay| 
        sleep delay.to_i 
    end 
    

顯然,在測試中使用「睡眠」並不是一個好習慣,但有時它是唯一的解決方法。

+0

雖然我無法解釋爲什麼,但加上5秒等待確實奏效! –

+0

@javascript有效,謝謝 – David

0

這是因爲如果使用Stripe的方法(https://stripe.com/docs/tutorials/forms),Stripe將異步驗證用戶輸入的信息。由於這是異步完成的,所以黃瓜不知道它。你真正需要的是讓Cucumber在Strip表單提交之後的步驟中等待,直到某個條件成立爲止。

Then(/^they should see "(.*?)"$/) do |content| 
    wait_until do 
    page.should have_content(content) 
    end 
end 

但是,從Capybara v2中刪除了wait_until。所以,你需要自己實現它,如果你想使用它(通過https://gist.github.com/jnicklas/d8da686061f0a59ffdf7

這裏是關於話題

http://www.elabs.se/blog/53-why-wait_until-was-removed-from-capybara

相關問題