Ruby on rails 在控制器测试之外的RSpec中发出HTTP请求

Ruby on rails 在控制器测试之外的RSpec中发出HTTP请求,ruby-on-rails,rspec,Ruby On Rails,Rspec,我有一些功能测试,我想模拟一个恶意用户直接发布到提交端点,而不是使用表单提交请求 在我的控制器测试中,我可以访问post和get方法,但它们似乎在控制器测试之外不可用 是否有任何方法可以在其他类型的测试中访问这些内容,以便我可以向自己的应用程序发出web请求。我还需要一种方法来绕过禁止发出任何请求的WebMock::NetConnectNotAllowedError错误 谢谢 在Rails中使用type::request RSpec.describe "MyIntegrationTest", t

我有一些功能测试,我想模拟一个恶意用户直接发布到提交端点,而不是使用表单提交请求

在我的控制器测试中,我可以访问
post
get
方法,但它们似乎在控制器测试之外不可用

是否有任何方法可以在其他类型的测试中访问这些内容,以便我可以向自己的应用程序发出web请求。我还需要一种方法来绕过禁止发出任何请求的
WebMock::NetConnectNotAllowedError
错误


谢谢

在Rails中使用type::request

RSpec.describe "MyIntegrationTest", type: :request do
  it 'gets by using the router' do
    get '/home'
  end
end

是否有特定的原因要将其移到控制器测试之外?因为这听起来像是控制器测试。我有一个表单,其中启用了客户端JavaScript表单验证。我想编写模拟恶意用户的测试,这些用户可能试图直接发布到与提交按钮相同的端点,或者在浏览器上单击禁用JS的按钮,并检查我的应用程序是否能够处理这些问题。auth流跨越多个控制器,所以我想这可能是一个集成测试。点击按钮更像是一种功能/水豚。不管采用何种方法,我仍然很好奇,为了这个问题,这是否可行。谢谢正如您所说,在这种情况下,用户使用直接调用/工具向控制器发布一些恶意数据。我想你应该在控制器测试中检查一下。您可能也可以在特性测试中使用
post
,但您可能需要包括/需要一些库。。我不能帮你把它包括在内。我只能指出,这对我来说仍然像是一个控制器测试。