场景如下。My Order 模型有一个 after_create ,它与远程支付网关联系以检索支付 URL。在我的 Cucumber 测试中,我不想执行此操作,而是返回任意 URL。我目前的黄瓜测试如下所示:
鉴于有一个产品“产品 X”当我输入我的凭据并单击“立即订购”然后我应该被重定向到“任意 url”
问题是我在哪里/如何确保我的订单模型正确设置了 url 并且不联系远程支付网关?
场景如下。My Order 模型有一个 after_create ,它与远程支付网关联系以检索支付 URL。在我的 Cucumber 测试中,我不想执行此操作,而是返回任意 URL。我目前的黄瓜测试如下所示:
鉴于有一个产品“产品 X”当我输入我的凭据并单击“立即订购”然后我应该被重定向到“任意 url”
问题是我在哪里/如何确保我的订单模型正确设置了 url 并且不联系远程支付网关?
wiki 也有一些关于存根的技巧。
在 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
希望这对其他人也有帮助。我仍然想知道是否有更好/更清洁的方式来实现这一目标。
如果我了解您要正确执行的操作,请查看FakeWeb。