我试图保持我的规范干净和干燥,但我对API进行了一些测试,除了正在测试的API版本之外,它们是相同的。我可以简单地使用这样的东西来重复规范:%w(v1v2).eachdo|version|describe"Query#{version}API"doit"respondswithJSON"#makethecallusingtheversionendendend但是我想要一些更简洁的东西,所以我写了这个方法:moduleRepetitivelyDescribedefrepetitively_describe(*args,&example_group_block)options=args.e
我最近将我的Rails应用程序从Rails3升级到Rails4,但此Rspec测试不再通过:#spec/models/user_spec.rb:require'spec_helper'describeUserdoit"shouldnotallowaccesstoadmin"doexpectdoUser.new(:admin=>true)end.toraise_error(ActiveModel::MassAssignmentSecurity::Error)endend我收到这个错误:Failure/Error:end.toraise_error(ActiveModel::MassAss
当从命令行调用rspec时,我知道您可以使用-e或-example标志来传入正则表达式它与任何itblock的内容相匹配,但是有没有办法传入正则表达式并让RSpec运行名称与该正则表达式匹配的文件? 最佳答案 您可以使用示例:-Itwillloadforyouallfiles,whosenamesstartwithtestrspec-Pspec/**/test*_spec.rbrspec-Pspec/**/test*.rbItwillloadforyouallfiles,whichhasawordtestinmiddle,butno
Article#to_archive是Article#archived!的别名:classArticlealiasto_archivearchived!end我需要确保这一点,所以我写了这个测试:describe'#to_archive'doit'isanaliasto#archived!'doexpect(subject.method(:to_archive)).toeq(subject.method(:archived!))endend但是,我收到一个错误Failure/Error:expect(subject.method(:to_archive)).toeq(subject.m
学习Rspec,只使用Ruby,不使用Rails。我有一个脚本可以按预期从命令行运行,但我无法通过测试。相关代码:classTreeattr_accessor:height,:age,:apples,:alivedefinitialize@height=2@age=0@apples=false@alive=trueenddefage!@age+=1end和规范:describe"Tree"dobefore:eachdo@tree=Tree.newenddescribe"#age!"doit"agesthetreeobjectoneyearpercall"do10.times{@tree
我刚刚更新到Ruby1.9.1,几乎我所有的rspec都坏了,给我一个“无法修改卡住的对象”。甚至来自生成rspec_controller的Rspec示例代码也会失败。RuntimeErrorin'DownloadsControllershoulduseDownloadsController'can'tmodifyfrozenobject/usr/local/lib/ruby19/1.9.1/timeout.rb:44:in`timeout'Generatedbythefollowingcode:it"shoulduseDownloadsController"docontroller.
Rake允许以下语法:task:my_task,:arg1,:arg2do|t,args|puts"Argswere:#{args}"end我希望能够做同样的事情,但是使用RSpecsSpecTask。不幸的是,以下失败了:desc"Runexamplewithargument"SpecTask.new('my_task'),:datafiledo|t,args|t.spec_files=FileList['*_spec.rb-datafile=#{args}']t.spec_opts=["-c-fspecdoc"]end是否可以通过SpecTask实现这一点,或者是否有替代方法?
我正在关注这篇文章,我可以在下面的这个ruby文件中编写这段代码,主页确实有示例应用程序,但当我运行bundleexec时,它仍然说静态页面主页应该有内容“示例应用程序”rspec规范/requests/static_pages_spec.rbspec/requests/static_pages_spec文件代码:require'spec_helper'describe"Staticpages"dodescribe"Homepage"doit"shouldhavethecontent'SampleApp'"dovisit'/static_pages/home'page.should
我有一些使用authenticate_or_request_with_http_basic的RailsController——如何在我的rspec示例中设置用户/密码?我很惊讶无法在网络上的其他地方找到它,所以也许我使用了错误的术语?--我发现了一些很古老的东西,或者我觉得很复杂的东西。似乎在这一点上rspec要么对此有直接支持,要么是一个整洁的惯用解决方案。 最佳答案 这行得通。感谢@zetetic给我指明了正确的方向beforedo@request.env["HTTP_AUTHORIZATION"]="Basic"+Base64
我们正在从我们构建的名为DBQuery的gem中重构一个名为DataSourceIntegrations的Ruby应用程序。我正在将一些DBQuery代码迁移到DataSourceIntegrations中。我正在构建的部分取决于DBQuery,它将在单独的步骤中添加。与此同时,我需要编写RSpec测试来验证DBQuery代码是否被正确调用,所有这些都没有DBQuery。我有的是:代码—gem密码—moduleDBQueryclassQueryMAX=1000defretrieve_users#ReturnsanarrayofuserIDsendendend应用程序代码—moduleI