2012-02-13 23 views
2

我目前面臨單元測試一個帶有Captcha組件的表單的困難任務。用於單元測試帶有Captcha組件的表單的模式?

根據定義,a 驗證碼旨在防止自動提交。並且根據定義,單元測試是自動的

有人可以精通單元測試html表單請提供建議嗎?

(僅供參考,我使用的Tapestry 5連同其捆綁Kaptcha組件 - 雖然我懷疑的解決方案是不依賴於技術。)

回答

1

我在我的應用程序中添加了一個測試模式,該模式強制Captcha字符串成爲一個衆所周知的值(我喜歡「i8cookies」)。測試模式在啓動時被指定爲JVM系統屬性,並且僅在生產模式下不存在。

+0

霍華德你好!是否有可能分享一些代碼?我搜索了「測試模式」和「java」,但無法找到任何相關信息。問候。朱利安。 – balteo 2012-02-13 22:05:20

+0

或者,也許可以直接通過網絡向我提供相關文檔。 – balteo 2012-02-13 22:24:43

+0

我想我快到了。我查看了Kaptcha的T5.3.1源代碼,並更好地理解您的意思。根據我是否能夠實施您的解決方案,我會在這裏發佈。最好的祝福! – balteo 2012-02-13 22:57:00

1

我說你應該把你的驗證碼生成器的界面和使用的背後一個模擬(或一個存根)在你的單元測試。

不知道你正在使用什麼語言,但在C#(純粹的,所以我可以寫的示例代碼 - 我認爲這是一個非常標準的解決方案),你可以這麼用:

public interface ICaptchaGenerator 
{ 
    string CreateCaptcha(); 
    bool IsCaptchaResponseCorrect(string originalCaptcha, string userResponse); 
} 

你再注入這到需要它的類中,使用存根或模擬,以便您可以測試當某人獲得正確或不正確的驗證碼時發生的情況。

+0

非常感謝您的回覆史蒂夫。我實際上使用Java和[kaptcha](http://code.google.com/p/kaptcha/)。我會嘗試你的建議,並相應地發佈在這裏。 – balteo 2012-02-13 13:54:42