7

场景如下。My Order 模型有一个 after_create ,它与远程支付网关联系以检索支付 URL。在我的 Cucumber 测试中,我不想执行此操作,而是返回任意 URL。我目前的黄瓜测试如下所示:

鉴于有一个产品“产品 X”当我输入我的凭据并单击“立即订购”然后我应该被重定向到“任意 url”

问题是我在哪里/如何确保我的订单模型正确设置了 url 并且不联系远程支付网关?

4

3 回答 3

12

wiki 也有一些关于存根的技巧

于 2009-09-09T21:47:27.990 回答
4

在 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

希望这对其他人也有帮助。我仍然想知道是否有更好/更清洁的方式来实现这一目标。

于 2009-09-07T10:28:34.270 回答
2

如果我了解您要正确执行的操作,请查看FakeWeb

于 2009-09-07T10:32:46.980 回答