我在電子商務網站的結帳頁面上使用Stripe JS。當在瀏覽器中手動測試時,流程工作得很好。但隨着黃瓜自動化測試的時候,我提交表單時收到以下錯誤:當使用Cucumber進行測試時Stripe JS失敗
發生意外錯誤提交您的信用卡給我們的 安全信用卡處理器。這可能是由於網絡連接問題 ,所以你應該再試一次(你不會被收取兩次)。如果這個 問題仍然存在,請讓我們知道!
Stripe JS不能在測試環境中工作,但在開發+生產中很好嗎?
我在電子商務網站的結帳頁面上使用Stripe JS。當在瀏覽器中手動測試時,流程工作得很好。但隨着黃瓜自動化測試的時候,我提交表單時收到以下錯誤:當使用Cucumber進行測試時Stripe JS失敗
發生意外錯誤提交您的信用卡給我們的 安全信用卡處理器。這可能是由於網絡連接問題 ,所以你應該再試一次(你不會被收取兩次)。如果這個 問題仍然存在,請讓我們知道!
Stripe JS不能在測試環境中工作,但在開發+生產中很好嗎?
我不是條紋JS專家,但是當我在大多數情況下與黃瓜+ JS的問題有兩個選擇:
我之前需要的功能/場景(明顯的問題)來添加@javascript標籤
沒有與JS功能的步驟之前,需要一定的延遲:
When /^wait (\d) sec$/ do |delay|
sleep delay.to_i
end
顯然,在測試中使用「睡眠」並不是一個好習慣,但有時它是唯一的解決方法。
雖然我無法解釋爲什麼,但加上5秒等待確實奏效! –
@javascript有效,謝謝 – David
這是因爲如果使用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
完整的博客文章如果您登錄到條帶化和去日誌可你看到請求信息? – CWitty
@CWitty條紋日誌不顯示任何假設的請求。 –