草庐IT

ruby-on-rails - 使用 Rspec 和 Capybara 设置一个新的 RoR 项目

我正在尝试按照thistutorial学习RoR我目前在第3章。如果我逐行学习,本教程效果很好。但是,本教程中使用的命令禁止生成默认测试。当我试图保留它们并可能在我的项目中使用它们时,我总是在某个地方碰壁。你能告诉我我做错了什么吗?$railsnewmyproject$cdmyproject/$echo"gem'rspec'">>Gemfile$echo"gem'rspec-rails'">>Gemfile$echo"gem'capybara'">>Gemfile$bundleinstall$bundle--binstubs$railsgeneraterspec:install$rai

ruby - 包含带有变量的 Rspec 示例

我有几套rspecs,它们都包含一些共享示例。如果原始规范有一些变量集,我希望这些共享示例随后包含其他共享示例。基本上这就是我想要做的。例子:文件:spec/test_spec.rbdescribe'something'dolet(:some_feature){true}describe'sometests'doinclude_examples"shared_tests"endend文件spec/shared/shared_tests.rbshared_examples_for"shared_tests"doinclude_examples"feature_specific_tests

ruby - RSpec HaveSelector 在使用 Capybara 时无法正常工作

Capybara的HaveSelector没有按照我期望的方式与RSpecexpect一起工作。我是Capybara和RSpec的新手,所以这很可能是我对RSpec或Capybara的误解,或者它可能是Capybara(版本2.0.2)的缺陷。请帮助我理解我的错误或编写错误报告/功能请求。在我的RSpec中我写道:expect{click('.special-div.submit')}.tohave_css('.submitted')我希望这在功能上等同于click('.special-div.submit')page.shouldhave_css('.submitted')但事实并非

ruby - Minitest 有 RSpec 的任何版本吗?

在RSpec中,我可以执行mock_obj.should_receive(:method).with(anything)...其中“anything”是任何变量。我可以在Minitest中执行此操作吗? 最佳答案 Minitest,因为它包含在Ruby1.9中,所以提供了MiniTest::Spec,一种类似上下文RSpec的语法。这不是RSpec。来自Github页面,这就是Minitest提供minitest/autorun-theeasyandexplicitwaytorunallyourtests.minitest/unit

ruby-on-rails - rspec-mocks 'allow' 返回未定义的方法

我使用的是RSpec2v2.13.1,它似乎应该包含rspec-mocks(https://github.com/rspec/rspec-mocks)。当然它在我的Gemfile.lock中列出。但是,当我运行我的测试时,我得到了Failure/Error:allow(Notifier).toreceive(:new_comment){@decoy}NoMethodError:undefinedmethod`allow'for#这是我要运行的测试:require'spec_helper'describeCommentEventdobefore(:each)do@event=Factor

ruby-on-rails - 使用 rspec 中传递的参数测试 rake 任务

在rspec中,我想用传入的一些参数测试一个rake任务,所以在命令行中你可以运行这个:rakecommissions:create_price_pointsoptions=1,2,3在rake任务中,我使用ENV['options']。在我的rspec中有rake=get_rake_environment(RAKE_FILE)rake["commissions:create_price_points"].invoke(options=1,2,3)这很好地运行了rake,但是这个以及我用invoke和execute所做的其他尝试没有将选项传递给它。只是想知道是否有人对如何执行此操作有任

ruby-on-rails - 我可以使用 rspec 登录到 test.log 吗?

这里有一个简单的规范来测试这个:require'spec_helper'describeA_controllerdobeforedo@cat_noise="Meow"endit"shoulddonothingbecauseit'semptyandIcreateditjusttotestlogger!"dologger.info"----------Herecomesacatnoise-----------"logger.info@cat_noiselogger.info"-----------Theregoesacatnoise-----------"endend这是我的测试环境的日志

ruby-on-rails - Rspec 在重定向后检查模板

这是我为用户创建的操作:defcreate@user=User.new(user_params)if@user.saverespond_todo|format|format.html{redirect_toedit_admin_user_path(@user)flash[:success]="Successfullycreated"}endelserender:newflash[:alert]="Somethingwentwrong"endend我的测试是这样的:context"POSTmethods"dodescribe"#create"doit"renderstheedittemp

ruby-on-rails - Rspec:使用 super(args) 初始化 Controller 类时,rspec-rails 是否存在问题?

我已经使用Rspec一段时间了,出于某种原因,我在一个名为ReferencesController的Controller上收到错误。错误表明我必须通过以下任一方式指定Controller名称:describeMyControllerdo或describe'aoeuaoeu'docontroller_name:my两种变体我都试过了:describeReferencesControllerdo和describe'refscontroller'docontroller_name:references但是我得到了两个错误!知道可能出了什么问题吗?伯恩斯编辑:由于解决方案的性质,我改写了标题并

ruby-on-rails - RSpec 异常后继续

有没有办法让RSpec在引发异常后继续处理规范?这是我的规范任务的样子:SPEC_PATTERN="spec/**/*_spec.rb"Spec::Rake::SpecTask.new()do|t|t.spec_files=FileList[SPEC_PATTERN]t.verbose=truet.spec_opts=["--format","html:spec/spec_report.html"]t.fail_on_error=falset.rcov=truet.rcov_dir='coverage't.rcov_opts=['--exclude','spec']end