如何测试我的应用程序对格式错误的URL的响应?

在开发和测试环境中,我们实际上并没有看到任何格式错误的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,无效查询字符串等的最佳方法是什么?

linshumian999 回答:如何测试我的应用程序对格式错误的URL的响应?

在测试中,发送到您的应用程序的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 "/<<"
,

您可能应该将此测试作为请求规范(没有Capybara)而不是功能/系统规范编写-请参见https://relishapp.com/rspec/rspec-rails/docs/request-specs/request-spec

本文链接:https://www.f2er.com/3083013.html

大家都在问