我目前面临着单独测试带有Captcha组件的表单的艰巨任务。
根据定义, Captcha旨在阻止自动提交。根据定义,单元测试是自动的。
有精通单元测试html表格的人可以提供建议吗?
(仅供参考,我使用Tapestry 5及其捆绑的Kaptcha组件 - 尽管我怀疑该解决方案不依赖于技术。)
答案 0 :(得分:1)
我会说你应该把你的Captcha生成器放在一个接口后面,并在你的单元测试中使用一个模拟(或存根)。
不确定您正在使用哪种语言,但在C#中(纯粹是因为我可以编写示例代码 - 我认为这是一个非常标准的解决方案)您使用的是这样的语言:
public interface ICaptchaGenerator
{
string CreateCaptcha();
bool IsCaptchaResponseCorrect(string originalCaptcha, string userResponse);
}
然后使用存根或模拟将其注入需要它的类中,这样您就可以测试当某人获得Captcha正确或不正确时会发生什么。
答案 1 :(得分:1)
我在我的应用程序中添加了一个测试模式,强制Captcha字符串为一个众所周知的值(我喜欢“i8cookies”)。测试模式在启动时指定为JVM系统属性,并且在生产模式下不存在。