在开发和测试环境中,我们实际上并没有看到任何格式错误的URL,但是在现实世界中,应用程序经常会被编写不当的爬网程序,尝试SQL注入攻击的人们访问应用程序等。向应用程序请求格式错误的URL (未转义的标点符号等)。
我发现从格式错误的URL请求我的网站正在发痒,因此我去修复了该错误并为其编写了测试。这是一个测试示例:
scenario "with a garbage URL" do
visit "/<<"
# my actual expectation is irrelevant to this question
expect(some_result).to have_happened
end
这里的问题是visit "/<<"
在测试工具中抛出异常 ,并且我的应用程序从未受到攻击,因为Capybara会拒绝访问格式错误的URL。
那么,测试我的应用程序是否正确响应测试工具不会生成的格式错误的URL,无效查询字符串等的最佳方法是什么?
答案 0 :(得分:0)
在测试中,发送到您的应用程序的URL格式不正确的部分是主机名之后的部分。如果您希望URL的那一部分格式不正确,则仍然需要提供工具可以解析的URL。因此,这意味着包括方案和主机名,因此很显然,您只是在传递格式错误的路径。
代替
Orgid Count_Approved Amount Count_Declined Amount Count_Pending AT
25 2 65463 12 6546 121 85
12 12 87412 12 56 1 854
100 72 651132 2 4654 2 215
使用
visit "/<<"
答案 1 :(得分:0)
您可能应该将此测试作为请求规范(没有Capybara)而不是功能/系统规范编写-请参见https://relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec