我有一个模型方法,它在执行时返回以下内容。{"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项目,我忽略了为其构建测试(很遗憾!),并且代码库已经变得相当大。我的一个friend说RSpec很难用,除非你从一开始就使用它。这是真的?是什么让他这么说?那么,考虑到可用的测试套件和代码库已经存在的事实,让这个东西可测试的最佳行动方案是什么?这真的与从头开始做有很大不同吗? 最佳答案 这个问题cameuprecently在RSpec邮件列表上,我们通常给出的建议是:除非您打算更改它,否则不要费心尝试将规范改造为现有的、有效的代码-这会让人筋疲力尽,而且除非代码需要更改,否则毫无意义。从现在起开始为您所做的任何更
我经常运行各种测试组,例如:raketest:unitsraketest:functionals我也喜欢运行单独的测试文件或单独的测试:ruby-Itesttest/unit/file_test.rbruby-Itesttest/unit/file_test.rb-n'/somecontextImworkingon/'还有:raketestTEST=test/unit/file_test.rb我什至在我的Rakefile中创建了自定义分组:Rake::TestTask.new(:ps3)do|t|t.libs我还没有弄清楚的是如何在命令行运行多个临时测试。换句话说,如何将test_fi
我们正在启动一个基于RubyonRails的项目。我们曾经使用Perl和PostgreSQL函数,使用Rails和ActiveRecord我还没有看到我们应该如何在PostgreSQL中创建函数并使用ActiveRecord和模型保存记录。我知道我们可以在PostgreSQL中手动创建它,但ActiveRecord的“魔力”在于可以使用所有模型重新创建数据库。有什么方法可以使用Rails创建PostgreSQL函数并将其保存在模型中吗? 最佳答案 这部分问题:IknowwecancreateitmanuallyinPostgreSQ
我编写了一个简单的类方法Buy.get_days(string),并尝试使用不同的文本字符串输入对其进行测试。但是我觉得它非常冗长。是否有更简洁的方法来测试以下内容?有没有相当于subjectformethods我可以继续传递输入不同的参数并检查结果?有没有办法避免在每个它处进行不必要的描述?谢谢describeBuydodescribe'.get_days'doit'shouldgetdays'doBuy.get_days('Includesa1-weeknightstayforupto4people').should==1endit'shouldgetdays'doBuy.get_
给定以下类:classTestattr_accessor:nameend当我创建对象时,我想执行以下操作:t=Test.new{name='SomeTestObject'}目前,它导致name属性仍然是nil。是否可以不添加初始化器? 最佳答案 好的,我想到了一个解决方案。它使用initialize方法,但另一方面却完全按照您的意愿行事。classTestattr_accessor:namedefinitialize(init)init.each_pairdo|key,val|instance_variable_set('@'+ke
我正在尝试从schema.rb创建我所有的表我使用了命令:“rakedb:schema:load”但是,这失败了,因为在我的一个初始化器中,它引用了一个显然不存在的模型/表(因为数据库是空的)我可以注释掉这些行,然后再次运行schema:load,但是有其他选择吗? 最佳答案 可能最快的方法是将有问题的初始化程序移动到应用程序外部的临时目录,然后运行您的模式加载。但是,如果这不起作用,或者由于某种原因不是一个选项,您总是可以通过创建一个简单的rails应用程序来执行模式加载来解决这个问题:创建一个新的Rails应用:railsnew
我想在rspec中测试是否存在提交按钮。我也在用capybara。我试过:shouldhave_tag("input","Submitbutton")和shouldhave_content("Submit,button")但它要么引发异常,要么给出误报。 最佳答案 这些都是很好的建议,但是如果你想确认它是一个按钮并且它有正确的值(用于显示),你必须更详细一点:page.shouldhave_selector("input[type=submit][value='PressMe']")我不知道现有的匹配器可以做到这一点。这是我编写的自
我需要一个工具来测量Ruby下的测试覆盖率。我试过rcov,但无法在Windows、Cygwin或Ubuntu下安装它。哪些程序(不一定免费)计算Ruby测试的分支和/或行覆盖率并与RubyonRails一起工作? 最佳答案 Simplecov.Rcov在Ruby1.9.*下工作得不是很好,但simplecov可以。 关于ruby-on-rails-Ruby测试覆盖率工具,我们在StackOverflow上找到一个类似的问题: https://stackove
我的一个AR模型中有以下代码片段:after_update:cache_bust模型中的cache_bust方法接受一个参数(bool值),默认将其自身的值设置为false。如何从上面定义的ActiveRecord回调中将true传递给模型中的这个方法?例如:after_update:cache_bust(true)不起作用,因为它是一个符号,我如何将true传递给方法的参数? 最佳答案 Therearefourtypesofcallbacksacceptedbythecallbackmacros:Methodreferences(