我尝试用RSpec2测试一个类,它有一些私有(private)方法,这些方法是从一些公共(public)方法调用的。我用测试公共(public)方法@foo.should_receive(:start_training).exactly(2).times他们是否被调用以及调用频率。我的问题是,这种方法不适用于私有(private)方法。那么,有什么方法可以将@foo.send(:private_method)与should_receive结合使用吗?或者任何其他语法? 最佳答案 should_receive(:method)无论:m
我正在使用spork0.9.2和rspec3.0.0。尝试运行测试rspec--drb时出现异常C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/spork-0.9.2/lib/spork/test_framework/rspec.rb:11:inrun_tests:未初始化常量RSpec::Core::CommandLine(名称错误)但是当将rspec版本更改回2.6时-一切正常。有没有人遇到过同样的问题?是否可以变通? 最佳答案 原因是RSpec::Core::Comma
谁能告诉我rspec、capybara和cucumber的区别?group:development,:testdogem'rspec-rails','~>2.0'endgroup:testdogem'capybara','~>2.1.0'end在JavaScript中,我将Jasmine视为我的单元测试框架。这三个gem在Ruby环境中有什么作用? 最佳答案 rspec是一个功能齐全的测试框架,可让您编写Rails认为的单元测试、功能测试和集成测试。所有这些都通过Rails应用程序的各个层使用Ruby代码。所有这些测试都模拟对Rai
升级到guard2.6.1后,guard停止执行更改文件的规范13:27:09-INFO-LiveReloadiswaitingforabrowsertoconnect.13:27:09-INFO-Guard::RSpecisrunning13:27:09-INFO-Guardisnowwatchingat'[pathtoproject]'13:27:13-INFO-Running:spec/models/[some_model]_spec.rb13:27:13-ERROR-Nocmdoptionspecified,unabletorunspecs!我的包是Usingguard(2.6
我只是想知道其他人如何组织大型规范文件(尤其是模型),其中许多上下文和部分组织在描述block中,用于验证和其他可以以某种有意义的方式分组的规范。你们是否将有关模型的所有规范保存在该模型的同一个规范文件中,或者你们是否以某种方式拆分为模块?到目前为止,我从来没有太在意过这个,但我想知道其他人在做什么,因为似乎没有围绕最佳实践等达成某种协议(protocol)。对于某些模型,我有一些非常大的规范文件,我想将它们组织成较小的文件,而且不同模型之间几乎没有或没有共享功能,所以我不确定共享示例是否可以解决这个问题(无论可重用性如何)或者是否有更好的方法。有什么建议吗?提前致谢。
我正在编写规范来测试当有人通过URL发送查询时mashup_controller的行为。我需要模拟URL中包含的参数,我读到post()方法可以做到这一点,但是当我收到错误时:1)MashupControllersimulatesqueryFailure/Error:post:createNoMethodError:undefinedmethod`post'for##./mashup_controller_rspec.rb:9:in`block(2levels)in'Finishedin0.20199seconds1example,1failureFailedexamples:rspe
我一直在为Controller和模型编写规范,但我从未编写过辅助规范。我不知道从哪里开始。我在application_helper.rb中有以下片段deftitle(page_title)content_for(:title){page_title}end我应该如何编写代码的辅助规范?此外,如果有任何开源Rails应用程序可以显示良好的辅助测试/规范,请告诉我。 最佳答案 来自rspec-railsdocsonHelperSpecs:Helperspecsliveinspec/helpers,andmixinActionView::
我有一个测试是这样做的:expect(@parser.parse('adsadasdas')).toraise_error(Errno::ENOENT)但它没有用。我改为:expect{@parser.parse('adsadasdas')}.toraise_error(Errno::ENOENT)它奏效了。我们什么时候使用大括号,什么时候使用圆括号? 最佳答案 为了回应OP的评论,我编辑并完全重写了我的答案。我意识到我原来的答案被过于简单化了,以至于它可能被认为是不正确的。您的问题实际上已被另一个StackOverflowques
虽然我的问题很简单,但我没能在这里找到答案:如何stub方法并返回参数本身(例如在执行数组操作的方法上)?像这样:interface.stub!(:get_trace).with().and_return() 最佳答案 注意:stub方法已被弃用。请看thisanswer以现代方式做到这一点。stub!可以接受一个block。block接收参数;block的返回值是stub的返回值:classInterfaceenddescribeInterfacedoit"shouldhaveastubthatreturnsitsargument
我正在编写Capybara测试并使用Rspec进行断言。我的测试失败了,因为应用的CSS样式导致文本全部大写。我如何重写它,使其成为不区分大小写的断言?"ALLCAPS".shouldinclude('AllCaps') 最佳答案 这里是对phoet解决方案的改进:page.body.shouldmatch(%r{#{string}}i)不幸的是,这里的语法高亮并不是很公平(它在SublimeText中看起来非常好) 关于ruby-不区分大小写的Rspec匹配,我们在StackOverf