2017-09-04 39 views
0

我對BDD與黃瓜相關的最佳做法有兩個疑問。BDD通過Recaptcha和空值 - 最佳實踐

我有一個頁面來自動註冊用戶。

你輸入你的個人資料,如:姓名,電子郵件和確認 然後你選擇你感興趣的網站的選項(有10個組合框,可以任意多)。 插入一個recaptcha併發送。

我需要驗證所有成功案例以及失敗。

所以,這裏是我的問題:

1)與recaptcha頁。 由於無法自動執行回覆,並且這一步自然會進入我的測試,因此我應該爲無效的驗證碼驗證做一個場景嗎?

2)是否有沒有我的聰明的方式來寫一個場景探索網頁的興趣選擇所有可能的組合?

在我的網頁: ()經濟 ()教育 ()體育 ()康樂 ()遊記 ()...

我希望能夠通過提交試了幾次測試1個選項,2個選項,3個選項,...,所有選項。 但我只是想要這樣做,如果有一種精益的方式來做到這一點。

換句話說:在方案概要實施例I可以通過在這種情況下一個空值?

回答

0

在什麼托馬斯驗證碼提到我要說的是,這是不能自動測試(除負路徑)的幾件事情之一線。

我也同意托馬斯,你不應該想測試使用可執行規範的選項每一個可能性,而是使用集成測試或可能的,即使單元測試,如果這部分代碼的架構允許。

至於在小黃瓜格式的實際執行情況我看到一些像這樣的功能如下:

Given Paul supplied the incorrect Captcha 
When he wants to register himself 
Then he should not be registered 
  • 您可以懷疑我們是否應該在方案中使用的執行字驗證碼,因爲這將是當我們將Captcha替換爲我們的實現時,這是不正確的。

有可能是一個潛在的其他情形取決於一個人是否被允許註冊時沒有選擇的選擇:句子的時候,然後部分

Given Paul has not chosen any of the possible interest topics 
When he wants to register himself 
Then he should not be registered 
  • 通知重用以減少測試代碼。
0

關於驗證碼,我可能會驗證一個破解的驗證碼會停止用戶。驗證正向路徑顯然很困難,因爲驗證碼用於阻止殭屍程序,自動驗證與殭屍程序相同。

關於驗證所有的選擇,我會看看我能做到這一點的表面之下。使用瀏覽器從UI執行此操作很慢,並且您正在討論2^10組合。這是很多情況。如果所有組合都需要測試,請對照控制器進行測試。這種情況下,像黃瓜這樣的工具可能不是你最好的選擇。一種編程語言可能比小黃瓜更好。

如果你還是想用黃瓜,至少可以迅速,避免瀏覽器。我寫了一篇關於正確工具的blogpost。它可以幫助你理解爲什麼你不必爲了所有場景而使用UI。