草庐IT

rspec-given

全部标签

ruby - RSpec - as_null_object?

我不清楚as_null_object的目的是什么是什么情况下你会使用它?根据关于Relish的文档:Usetheas_null_objectmethodtoignoreanymessagesthataren'texplicitlysetasstubsormessageexpectations.没有向我注册。 最佳答案 当您不关心对象的行为或交互,并且不想显式地stub所有需要的东西时,使用空对象。使用空对象上的任何参数调用任何方法都不会导致NoMethodError或ArgumentError。另请参阅NullObjectPatte

ruby - 加载错误 : cannot load such file -- rspec/core/rake_task

当我rake的时候,我得到了这个错误。AllenLins-MacBook-Pro:geoblacklightallenlin$rake-tResolvingdependencies...Youmust`geminstallbundler`and`bundleinstall`torunraketasksrakeaborted!LoadError:cannotloadsuchfile--rspec/core/rake_task/Users/allenlin/Documents/USpatial/geoblacklight/Rakefile:12:in`require'/Users/alle

ruby - 是否存在用于匹配哈希的 RSpec2 匹配器?

future读者请注意:认为RSpec不认为您的哈希值相等?一个可能是OrderedHash,但从常规的RSpec输出中您无法分辨。这就是引发这篇文章的问题。原始问题:假设我有一个规范,我想在其中测试某个方法是否生成了适当的哈希值。it'shouldgeneratetheHashcorrectly'doexpected={:foo=>1,'baz'=>2}subject.some_method_that_should_generate_the_hash.should==expectedend这经常会失败,因为具有相同键值对的不同哈希可能会以不同的顺序返回它们的对。结果如下:Failur

ruby-on-rails - 没有路由匹配 { :controller= >"stocks", :action= >"create"} RSpec Rails 3

我不明白为什么我在运行RSpec时收到此错误消息:Failure/Error:post:createActionController::RoutingError:Noroutematches{:controller=>"stocks",:action=>"create"}controllerstocks存在,actioncreate存在,它应该使用的路由是这样的:match'stocks/:user_id'=>'stocks#create',:via=>:post,:as=>:query路由文件:FruthScreener::Application.routes.drawdoroot:

ruby - block 语法差异导致 "LocalJumpError: no block given (yield)"

这个问题在这里已经有了答案:Codeblockpassedtoeachworkswithbracketsbutnotwith'do'-'end'(ruby)(3个答案)关闭8年前。看到一个奇怪的案例出现,试图弄清楚这里发生了什么:>deftest>pyield>end=>nil>test{1}1=>1>ptest{1}11=>1>ptestdo>1>endLocalJumpError:noblockgiven(yield)

ruby - RSpec 找不到嵌套的格式化程序

我正在尝试仅针对Ruby(而非Rails)运行rspec,针对一个简单的Ruby文件。我正在关注Tut+TDDTestingwithRuby。我有一个competition目录,其中包含一个lib文件夹和一个spec文件夹。├──lib│  ├──competition.rb│  └──team.rb└──spec└──competition_spec.rb当我运行rspec时,我得到了这个错误。我可以发誓rspec以前工作过。我不知道发生了什么事。competition:>rspecspec/Users/akh88/.rvm/gems/ruby-1.9.3-p547/gems/rsp

ruby - 如何使用 rspec 在 sinatra 中测试重定向?

我正在尝试在rspec中测试我的sinatra应用程序(更具体地说,padrino应用程序)主页上的重定向。我找到了redirect_to,但它似乎只在rspec-rails中。你如何在sinatra中测试它?所以基本上,我想要这样的东西:it"Homepageshouldredirecttolocations#index"doget"/"last_response.shouldbe_redirect#Thisworks,butIwantittobemorespecific#last_response.shouldredirect_to('/locations')#Onlyworksf

ruby - 在 RSpec 中自动共享上下文

我想在我的规范之间共享一个内存方法。所以我尝试像这样使用共享上下文RSpec.configuredo|spec|spec.shared_context:specsdolet(:response){request.execute!}endenddescribe'something'doinclude_context:specsend它工作正常。但是我有大约60个规范文件,所以我不得不在每个文件中明确包含上下文。有没有办法为spec_helper.rb中的所有示例组自动包含共享上下文(或至少let定义)?像这样RSpec.configuredo|spec|spec.include_cont

ruby - 将参数传递给 rspec 共享示例

我有一个返回结果集的过程,我想使用rspec测试该结果集的有效性。该过程将根据参数返回不同的结果,但有许多示例对所有参数都是通用的,因此我想创建一组通用示例,我可以针对所有这些示例运行。我知道首选的做法是使用let来构建结果。问题是每个过程需要一两分钟才能生成结果,而我大概有30个示例。使用基于不同参数的所有排列,我运行了大约500个示例。如果我必须为每个示例重建结果,测试将运行一天以上。所以我在before(:all)block中构建结果并将其分配给如下属性:RSpec.describe'TestDescription'doattr_reader:resultbefore(:all)

ruby rspec 和字符串比较

我不是ruby​​专家,这可能看起来是个愚蠢的问题……但我对我在RSpec匹配器中发现的一个奇怪的东西(我认为)非常好奇,这个匹配器叫做match。您知道match接受字符串或正则表达式的输入。示例:"test".shouldmatch"test"#=>willpass"test".shouldmatch/test/#=>willpass当您在输入字符串中插入特殊的正则表达式字符时,奇怪的事情就开始了:"*test*".shouldmatch"*test*"#=>willfailthrowingaregexexception这意味着(我认为)输入字符串被解释为正则表达式,那么我应该转义