方案如下。我的订单模型有一个after_create,它与远程支付网关联系以检索支付URL。在我的Cucumber测试中,我不想执行此操作,而是返回任意URL。我目前的黄瓜测试看起来像这样:
鉴于有产品“产品X” 当我输入我的凭据时 然后点击“立即订购” 然后我应该被重定向到“任意网址”
问题是在哪里/如何确保我的订单模型正确设置网址而不与远程支付网关联系?
答案 0 :(得分:11)
维基也有一些tips on stubbing。
答案 1 :(得分:3)
在features / support / env.rb中,我修改了我的Order模型以设置任意URL。这可以用Mocha或其他东西来完成,但在这种情况下没有意义。
在我的步骤中,我可以检查正确重定向的响应,如下所示:
Then /^I should be redirected to the payment gateway$/ do
response.status.should eql("302 Found")
response.location.should eql(Order.last.payment_url)
end
希望这对其他人也有帮助。我仍然想知道是否有更好/更清洁的方法来实现这一目标。
答案 2 :(得分:1)
如果我理解您要正确执行的操作,请查看FakeWeb。