草庐IT

ruby - 恢复 Rails 3's Bundle Install Path... It' s 现在安装在我的根目录中

我在尝试安装vestal_versions插件时做了一些事情,最终在我的应用程序的根目录中创建了一个vestal_versions目录,内容如下:-Application-APP-DB-vestal_versions-ruby-1.8-bin-cache-doc-gems-specifications如果删除哪个会阻止应用程序运行...我如何更新bundle以将所有这些东西安装在正确的位置,我认为这是在应用程序之外? 最佳答案 bundleinstall使bundler将gem安装在相应的目录中。正在运行bundleinstall-

ruby - "include_examples"和 "it_behaves_like"有什么区别?

在RSpec中,it_behaves_like和include_examples有什么区别?documentation说:include_examples—include(s)theexamplesinthecurrentcontextit_behaves_like"name"—include(s)theexamplesinanestedcontext但这到底是什么意思呢?用另一个替换一个似乎对我的测试是通过还是失败没有影响。在某些情况下是否有理由偏爱其中一个?此外,it_should_behave_like和it_behaves_like只是同义词吗? 最

ruby-on-rails - gem 更新后 : test fail with "Asset was not declared to be precompiled in production"

由于我更新了几个gem,所以所有测试都失败并出现错误:ActionView::Template::Error:Assetwasnotdeclaredtobeprecompiledinproduction.AddRails.application.config.assets.precompile+=%w(favicons/manifest.json.erb)toconfig/initializers/assets.rbandrestartyourserverapp/views/layouts/_faviconsheader.html.erb:14:in_app_views_layouts

ruby-on-rails - RSpec any_instance 弃用 : how to fix it?

在我的Rails项目中,我使用rspec-mocks和any_instance但我想避免这个弃用消息:使用rspec-mocks的旧:should语法中的any_instance而不显式启用该语法已被弃用。使用新的:expect语法或明确启用:should。这是我的规范:describe(".create")doit'shouldreturnerrorwhen...'doUser.any_instance.stub(:save).and_return(false)post:create,user:{name:"foo",surname:"bar"},format::jsonexpect

ruby-on-rails - rails : How do I write tests for a ruby module?

我想知道如何为混合到几个类中的模块编写单元测试,但不太知道如何去做:我是通过在其中一个测试文件中为包含它们的类编写测试来测试实例方法(似乎不正确),还是您能以某种方式将包含方法的测试保存在特定的单独文件中到模块?同样的问题也适用于类方法。我应该像普通Rails模型那样为模块中的每个类创建一个单独的测试文件,还是它们存在于通用模块测试文件中(如果存在)? 最佳答案 恕我直言,您应该进行涵盖模块所有用途的功能测试覆盖率,然后在单元测试中对其进行隔离测试:setupdo@object=Object.new@object.extend(Gr

ruby - Ruby Koans 的test_changing_hashes 中的bonus 问题的答案是什么?

在RubyKoans,about_hashes.rb部分包含以下代码和注释:deftest_changing_hasheshash={:one=>"uno",:two=>"dos"}hash[:one]="eins"expected={:one=>"eins",:two=>"dos"}assert_equaltrue,expected==hash#BonusQuestion:Whywas"expected"brokenoutintoavariable#ratherthanusedasaliteral?end我无法在评论中找到奖金问题的答案-我尝试实际进行他们建议的替换,结果是一样的。我

ruby Rspec : Testing instance variables without adding an accessor to source

我正在尝试测试以下方法:defunprocess_move(board,move)ifmove[0].instance_of?(Array)multi_move=@multi_move.pop(2).reversemulti_move.eachdo|single_move|unapply_move(board,single_move)endelseboard=unapply_move(board,move)endboardend我想为@multi_move设置状态,但我不想添加仅用于测试的访问器。有没有办法在没有访问器的情况下这样做?谢谢。 最佳答案

ruby-on-rails - rails 4 : How to reset test database?

我在使用Rails4并注意到我的一些RSpec测试失败了,因为我的一些测试重构使用了前置过滤器(大概是因为事务)。这篇文章描述了一个类似的问题:railstestdatabasenotclearingaftersomeruns代替使用DatabaseCleanergem,是否有清除测试数据库的rake命令?我相信rakedb:test:prepare在Rails4中被弃用了。此外,如果在交易之前,如`post:create,user:Fabricate.attributes_for(:user)`是持久性的,是否有另一种重构方式来避免手动清除测试数据库的需要?

ruby-on-rails - rails : Validating min and max length of a string but allowing it to be blank

我有一个要验证的字段。我希望该字段能够留空,但如果用户正在输入数据,我希望它采用某种格式。目前我在模型中使用以下验证,但这不允许用户将其留空:validates_length_of:foo,:maximum=>5validates_length_of:foo,:minimum=>5如何编写此代码以实现我的目标? 最佳答案 你也可以使用这种格式:validates:foo,length:{minimum:5,maximum:5},allow_blank:true或者因为您的最小值和最大值相同,以下也将起作用:validates:foo

ruby-on-rails - RSpec 中 it block 和 specify block 的区别

RSpec中的itblock和specifyblock有什么区别?subject{MovieList.add_new(10)}specify{subject.shouldhave(10).items}it{subject.track_number.should==10}他们似乎在做同样的工作。只是检查以确保。 最佳答案 方法是thesame;提供它们是为了根据您的测试主体更好地阅读英文规范。考虑这两个:describeArraydodescribe"with3items"dobefore{@arr=[1,2,3]}specify{@