2011-09-06 23 views
0

我有一个控制器,它触发了其执行过程中的ActiveResource请求。包含在该请求是作为我的控制器执行的一部分而产生的ID(因此,/a/b/{my_id}/c.xml,其中添加my_id是受所述控制器产生的值)。如何防止我的功能测试用例从创建的ActiveResource电话?

我不希望我的测试用例来触发实际生活的要求,但我也不想调用失败(我需要一个200响应)。

我已经看过HttpMock,这似乎是一个很好的解决方案,但它似乎不允许在通配符块(例如)内的通配符或正则表达式,这是必要的,因为生成的id是请求。

有没有办法做到这一点?我一直在寻找,但我还没有看到任何东西,而HttpMock文档根本没有提及它。

回答

0

我建议要么嘲讽了Web服务与FakeWeb调用或使用的ActiveResource层本身对传统的嘲讽。

require 'fakeweb' 

    FakeWeb.register_uri(:get, "http://example.com/test1", :body => "Hello World!") 

    Net::HTTP.get(URI.parse("http://example.com/test1")) 
    => "Hello World!" 

...或摩卡嘲讽:

MyActiveResource.stubs(:create => true) 
+0

FakeWeb完全处理的问题,谢谢! –

相关问题