我正在尝试使用webmock模拟WebAPI的意外行为,例如未找到服务器和超时。执行此操作的最佳方法是什么?我能想到的就是做这样的事情:stubbed_request=stub_request(:get,"#{host}/api/something.json").with(:headers=>{'Accept'=>'*/*','Content-Type'=>'application/json','User-Agent'=>'Ruby'}).to_return(:status=>[500,"InternalServerError"])这应该适用于404等问题,但我如何测试超时、未找到服务
我有一个模型方法,它在执行时返回以下内容。{"data"=>[{"product"=>"PRODUCTA","orders"=>3,"ordered"=>6,"revenue"=>600.0},{"product"=>"PRODUCTB","orders"=>1,"ordered"=>5,"revenue"=>100.0}]}我想测试以确保第一个哈希中的“收入”存在,然后测试该值是否等于600。subject{described_class.order_items_by_revenue}it"includesrevenuekey"doexpect(subject).toinclude(
我正在以古老的方式学习Rails。以阅读AgileWebDevelopmentwithRails(第3版)作为起点。我目前在教测试的章节中。我也知道其他BDD测试框架,例如RSPec。所以我想知道RSpec、Cucumber、Shoulda等框架是否可以取代了解/使用Test::Unit的需要?它们本身是否相关并用于不同的目的?更新:由于我是测试新手,我也很想获得反馈,了解哪些资源对我熟悉不同的框架很有用。谢谢! 最佳答案 世界变了!检查并赞成@prusswan我认为Test::Unit仍然具有相关性,尽管围绕BDD和其他测试工具进
我编写了一个简单的类方法Buy.get_days(string),并尝试使用不同的文本字符串输入对其进行测试。但是我觉得它非常冗长。是否有更简洁的方法来测试以下内容?有没有相当于subjectformethods我可以继续传递输入不同的参数并检查结果?有没有办法避免在每个它处进行不必要的描述?谢谢describeBuydodescribe'.get_days'doit'shouldgetdays'doBuy.get_days('Includesa1-weeknightstayforupto4people').should==1endit'shouldgetdays'doBuy.get_
这是我的rspec文件:require'spec_helper'describe"Birds"dobefore{visitbirds_path}it"shouldhavetherighttitle"doexpect(page).tohave_content("ApprovedBirds")endit"shouldcontainthebird'sname,genus,species"dolet(:bird){FactoryGirl.create(:bird)}expect(page).tohave_content("#{bird.name}")expect(page).tohave_co
我的Waiver模型上有一个age方法,如下所示:defage(date=nil)ifdate.nil?date=Date.todayendage=0unlessdate_of_birth.nil?age=date.year-date_of_birth.yearage-=1ifdate然后我有一个看起来像这样的规范:it"calculatestheproperage"dowaiver=FactoryGirl.create(:waiver,date_of_birth:12.years.ago)waiver.age.should==12end当我运行这个规范时,我得到Comparisono
我在我的Rakefile中定义了以下RSpec(1.3.0)任务:require'spec/rake/spectask'Spec::Rake::SpecTask.new(:spec)do|spec|spec.libs我在spec/spec_helper.rb中有以下内容:require'rubygems'require'spec'require'spec/autorun'require'rack/test'require'webmock/rspec'includeRack::Test::MethodsincludeWebMockrequire'omniauth/core'我在spec/
我想在rspec中测试是否存在提交按钮。我也在用capybara。我试过:shouldhave_tag("input","Submitbutton")和shouldhave_content("Submit,button")但它要么引发异常,要么给出误报。 最佳答案 这些都是很好的建议,但是如果你想确认它是一个按钮并且它有正确的值(用于显示),你必须更详细一点:page.shouldhave_selector("input[type=submit][value='PressMe']")我不知道现有的匹配器可以做到这一点。这是我编写的自
我正在关注RoRTutorial我被困在Listing9.15运行'bundleexecrspecspec/'后出现以下错误:1)AuthenticationauthorizationaswrongusersubmittingaPATCHrequesttotheUsers#updateactionFailure/Error:specify{expect(response).toredirect_to(root_url)}ArgumentError:Missinghosttolinkto!Pleaseprovidethe:hostparameter,setdefault_url_opti
如何使用RSpec指定#initialize行为?例如这里:generator.rbclassGeneratorattr_accessor:seeddefinitialize(seed=nil)@seed=seed||pick_seedenddefpick_seedTime.now.to_iendendgenerator_spec.rbrequire'generator'describeGeneratorit"calls'pick_seed'methodunlessseedspecified"doendend我想设置从#initialize方法调用的pick_seed方法的期望值。