草庐IT

stubbing

全部标签

ruby-on-rails - 有没有办法撤消任何实例的摩卡 stub ?

在我的Controller规范中,我stub有效?对于一些路由测试,(基于RyanBatesnifty_scaffold)如下:-it"createactionshouldrendernewtemplatewhenmodelisinvalid"doCompany.any_instance.stubs(:valid?).returns(false)post:createresponse.shouldrender_template(:new)end当我单独测试Controller时,这很好。我的模型规范中也有以下内容it"isvalidwithvalidattributes"do@comp

ruby-on-rails - 在使用 WebMock 时遇到问题,没有正确 stub

Ruby1.9.3、RSpec2.13.0、WebMock1.17.4、Rails3我正在为公司应用程序编写测试。有问题的Controller显示客户调用的电话表,并允许排序/过滤选项。编辑测试失败,因为在我当前的设置中,路径没有呈现,因为recorder_server没有在本地运行,或者没有正确设置。也请帮忙解决这个问题。AErrno::ECONNREFUSEDoccurredinrecordings#index:Connectionrefused-connect(2)/usr/local/lib/ruby/1.9.1/net/http.rb:763:in`initialize'--

ruby - RSpec - 无法 stub 类私有(private)方法

我正在尝试使用RSpec3消除对某些JSON发出外部请求的方法。我之前通过将其放入spec_helper.rb文件中来让它工作,但现在我重构了并将该方法移动到它自己的类中,stub不再有效。RSpec.configuredo|config|config.beforedoallow(Module::Klass).toreceive(:request_url)doJSON.parse(File.read(File.expand_path('spec/fixtures/example_data.json')))endendend类看起来像这样moduleModuleclassKlass#pu

ruby-on-rails - 直接在模型上调用 rspec 会导致 stub 错误!方法

运行时:rakespec:models一切正常,但当我这样做的时候rspecspec/models/spot_spec.rb有Spot.stub!:test1,我得到:undefinedmethod`stub!'forSpot:Class错误仅在我包含该stub时发生!行。有什么办法可以避免吗?我只想运行特定型号的规范。更新:使用Ruby1.9.2和RSpec2.4.0,这里是spot_spec.rb代码:requireFile.expand_path(File.dirname(__FILE__)+'/../spec_helper')describeSpotdobefore(:all)

ruby - 我可以使用 rspec 模拟来 stub 版本常量吗?

我的代码只需要在特定版本的ActiveRecord上运行(解决旧AR库上的错误的方法)。此代码测试ActiveRecord::VERSION常量的值以查看它是否需要运行。有没有办法在rspec中模拟这些常量,这样我就可以测试该代码路径,而无需在测试机器上安装正确的ActiveRecordgem? 最佳答案 我最终编写了一个辅助方法来让我在执行代码块时覆盖常量:defwith_constants(constants,&block)constants.eachdo|constant,val|Object.const_set(consta

ruby - Rspec:访问 Klass.any_instance.stub block 内的实例

Feature:testrandomnessInordertomakesomecodetestableAsadeveloperIwantArray#sampletobecomeArray#first如果可以访问Klass.any_instance.stubblock中的实例,那将是可能的。像这样:Array.any_instance.stub(:sample){instance.first}但是那个afaik是不可能的。无论如何,场景需要! 最佳答案 我找到了一个hacky解决方案,我已经在rspec版本2.13.1和2.14.4上

ruby - 有什么方法可以验证模拟或 stub 是否有效?

假设我有一个用以下伪代码定义的类和方法classBookdefquick_inforeturntitle+""+authorendend如果我正在为某个使用此Book类的other类编写单元测试,我会为Book的方法调用创建一个stub。快速信息。现在我认为,如果我的Book类发生变化,例如,如果quick_info方法重命名为short_description,就会出现问题。我的单元测试仍将使用quick_info,看起来我的测试通过得很好,但实际上它应该失败。我想知道是否可以运行一些东西来验证我测试中的stub/模拟是否确实由正确的类和方法组成。也许像这样的东西可以在持续集成服务器

ruby - 使用 webmock/rspec stub 多部分请求

我一直在尝试使用webmock对多部分请求进行stub,但没有找到令人满意的解决方案。理想情况下,我想将请求stub如下:stub_request(:post,'http://test.api.com').with(:body=>{:file1=>File.new('filepath1'),file2=>File.new('filepath2')})然而,这似乎不起作用,RSpec提示请求没有被stub。打印非stub请求:stub_request(:post,"http://test.api.com").with(:body=>"--785340\r\nContent-Disposi

ruby - RSpec 3 : How to stub methods and constants from code we have yet to build/add?

我们正在从我们构建的名为DBQuery的gem中重构一个名为DataSourceIntegrations的Ruby应用程序。我正在将一些DBQuery代码迁移到DataSourceIntegrations中。我正在构建的部分取决于DBQuery,它将在单独的步骤中添加。与此同时,我需要编写RSpec测试来验证DBQuery代码是否被正确调用,所有这些都没有DBQuery。我有的是:代码—gem密码—moduleDBQueryclassQueryMAX=1000defretrieve_users#ReturnsanarrayofuserIDsendendend应用程序代码—moduleI

ruby-on-rails - 是否可以在父类中 stub 一个方法,以便所有子类实例都在 rspec 中 stub ?

给定父类Fruit及其子类Apple和Banana,是否可以将方法foostub>在Fruit中定义,以便在Apple和Banana的任何实例上对方法foo的任何调用都被stub?classFruitdeffooputs"somemagicinFruit"endendclassBananaFruit.any_instance.stubs(:foo)没有工作,看起来它只是Fruit实例的stub。除了为每个子类调用stub之外,是否有一种简单的方法可以实现这一点?发现此链接提出了类似的问题,但看起来尚未得到解答。http://groups.google.com/group/mocha-d