Tag: 嘲弄

我怎样才能选择模拟地理编码器?

我希望能够在我的一些测试中模拟地理编码器 gem的结果。 我使用RSpec和Cucumber。 在黄瓜中,我想默认模仿Geocoder结果,但是可以通过添加标签再次打开它。 那将是完美的! RSpec类似的东西也会很好。 它会极大地加速我的测试。 我知道有一些gem用于做类似的事情,例如太阳黑子的 sunspot_test 。 地理编码器有类似的东西吗?

我应该如何使用RSpec全局存根方法?

我正在研究Rails应用程序。 我试图在全局范围内存根方法。 我正在做的是将它存储在RSpec配置中,在before(:suite)块上,如下所示: RSpec.configure do |config| config.before(:suite) do allow_any_instance_of(MyModel).to receive(:my_method).and_return(false) end end 但是,启动测试失败,并出现以下错误: in `method_missing’: undefined method `allow_any_instance_of’ for # (NoMethodError) 任何线索? 我应该如何使用RSpec全局存根方法? P.

Ruby:const_set在块之外?

我想用Ruby模拟一个类 。 如何编写一个处理样板代码的方法? 以下代码: module Mailgun end module Acani def self.mock_mailgun(mock) temp = Mailgun const_set(:Mailgun, mock) p Mailgun yield ensure const_set(:Mailgun, temp) end end Acani.mock_mailgun(‘mock’) { p Mailgun } 打印: “mock” Mailgun 这里发生了什么? 为什么Mailgun在块内部具有原始值? 这与Ruby绑定有关吗? Ruby版本:2.1.1p76

我应该在测试时在Factory girl或spec文件中存根模型吗?

几乎每一个我遇到的spec文件最终都会写出如下内容: before :each do @cimg = Factory.build :cimg_valid @cimg.stub(:validate_img).and_return true @cimg.stub(:validate_img_url).and_return true @cimg.stub(:save_images).and_return true @cimg.stub(:process_image).and_return true @cimg.stub(:img).and_return true end 我的意思是,我从Factory.build获得的模型是完全有效的。 但是,如果我不存储那些东西,它会保存文件系统中的东西,并validation我没有测试的东西…… 我的意思是,我认为做这样的事情会更干净: before :each do @cimg = Factory.build :cimg_for_testing_tags end 如果甚至可以在工厂内进行存根。 存根模型的正确方法是什么?

有没有办法在Test :: Unit中撤消任何实例的Mocha存根

就像这个问题一样 ,我也在使用Ryan Bates的nifty_scaffold。 它具有使用Mocha的any_instance方法强制在隐藏在控制器后面的模型对象中的“无效”状态的理想方面。 与我链接的问题不同,我没有使用RSpec,而是使用Test :: Unit。 这意味着这两个以RSpec为中心的解决方案对我不起作用。 是否有一般(即:使用Test :: Unit)方法来删除any_instance存根? 我相信它在我的测试中导致了一个错误,我想validation一下。

如何测试使用机械化的ruby应用程序

我写了一个小程序,它使用Mechanize来遍历一个站点。 我想为它编写测试,但不希望每次运行测试时它都会实际登录到站点。 我想嘲笑互联网,所以当它进入某个网站时,它只是返回存储的结果。 这是一个小例子,假装我的代码的目的是从谷歌主页上拉链接,所以我写了一个测试,以确保我的代码找到的第一个链接有文本“图像”。 我可能写这样的东西: require ‘rubygems’ require ‘mechanize’ require ‘test/unit’ def my_code_to_find_links google = WWW::Mechanize.new.get(‘http://www.google.com’) # … # some code to figure out which liks it wants # … google.links end class TestGoogle < Test::Unit::TestCase def test_first_link_is_images assert_equal 'Images' , my_code_to_find_links.first.text end end 如何模拟google.com以便我可以测试my_code_to_find_links而无需实际访问互联网的所有开销? 谢谢 – 乔什

模拟系统调用ruby

知道一种模拟%[]的方法吗? 我正在编写测试代码,这些代码会进行一些系统调用,例如: def log(file) %x[git log #{file}] end 并且希望在测试此方法时避免实际执行系统调用。 理想情况下,我想模拟%x [..]并断言正确的shell命令传递给它。