【发布时间】:2020-10-06 21:53:00
【问题描述】:
我是 Ruby/Rails 和 Ruby/Rails 中的测试框架的新手。我有一个验证传入请求的预验证方法(外部 API)。对于所有测试用例,我想存根该调用并测试剩余的功能。
我了解测试和模拟/存根/间谍(主要是 Mockito/Powermockito 的东西),但不知道我在 Rails 测试方面的方法。我尝试研究 RSpec / MiniTest 的东西,但它变得不堪重负。
我有一个这样的控制器方法:
def handler
# validate
request_validated = validate_request
unless request_validated
head :unauthorized
return
end
#... remaining codes
end
def validate_request
# validation with external API
end
我使用ActionController::TestCase 设置了控制器测试。在添加验证内容之前,我所有的测试用例都已经过测试。但我不能绕过验证检查。
我想要类似的东西
controller.stub(validate_request).then_and_return(true) # need something of this sort
post :handler, as: :json, params: completed_service_parameters
assert_response :no_content
我愿意使用任何库,但如果有的话,我更愿意使用任何内置的 Rails。谢谢。
【问题讨论】:
标签: ruby-on-rails integration-testing ruby-on-rails-6 actioncontroller