如何在Cucumber测试中模拟/存根模型

时间:2009-09-07 09:44:25

标签: ruby-on-rails testing cucumber webrat

方案如下。我的订单模型有一个after_create,它与远程支付网关联系以检索支付URL。在我的Cucumber测试中,我不想执行此操作,而是返回任意URL。我目前的黄瓜测试看起来像这样:

鉴于有产品“产品X”    当我输入我的凭据时    然后点击“立即订购”    然后我应该被重定向到“任意网址”

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

3 个答案:

答案 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