Questions tagged «rspec»

RSpec是一个受JBehave启发的针对Ruby编程语言的行为驱动开发(BDD)框架。它包含自己的基于JMock的完全集成的模拟框架。该框架可以被视为特定领域的语言(DSL),类似于自然语言规范。

6
RSpec vs黄瓜(RSpec故事)
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 什么时候应该在Rails应用程序中使用规格,何时使用Cucumber(以前的rspec-stories)?我当然知道如何工作并积极使用规范。但是使用黄瓜仍然感觉很奇怪。我目前对此的看法是,在为客户端实现应用程序时使用Cucumber很方便,而且还不了解整个系统应该如何工作。 但是,如果我正在做自己的项目呢?在大多数情况下,我知道系统各部分之间的交互方式。我需要做的就是编写一堆单元测试。那我需要黄瓜的可能情况是什么? 并且,作为第二个相应的问题:如果我写黄瓜的故事,我是否必须写规范?难道不是对同一件事进行双重测试吗?

8
所有的Ruby测试提高:nil:NilClass的未定义方法“ authenticate”
我的大部分测试都提出了以下问题,但我不明白为什么。所有方法调用都会引发“身份验证”错误。我已经检查了代码中是否存在一种称为“ authenticate”的方法,但是没有这种方法。 1) Admin::CommentsController handling GET to index is successful Failure/Error: get :index undefined method `authenticate!' for nil:NilClass # ./spec/controllers/admin/comments_controller_spec.rb:9:in `block (3 levels) in <top (required)>' 124) PostsController handling GET for a single post should render show template Failure/Error: get :show, :year => '2008', :month => '01', :day => '01', …

10
如何在rspec请求规范中设置请求标头?
在控制器规格中,我可以这样设置http accept报头: request.accept = "application/json" 但在请求规范中,“ request”对象为nil。那我怎么在这里呢? 我想将http accept标头设置为json的原因是可以这样做: get '/my/path' 代替这个 get '/my/path.json'

13
如何选中水豚中的复选框?
我正在使用Rspec和Capybara。 如何编写检查步骤checkbox?我已经尝试过check通过价值,但找不到我的checkbox。我不确定该怎么办,因为我实际上拥有相同的ID,但值不同 这是代码: <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">

7
升级到Capybara 2.0后,如何单击项目列表中的第一个链接?
在这种情况下,如何单击第一个链接: <div class="item"> <a href="/agree/">Agree</a> </div> <div class="item"> <a href="/agree/">Agree</a> </div> within ".item" do first(:link, "Agree").click end 我得到这个错误: Capybara::Ambiguous: Ambiguous match, found 2 elements matching css ".item" 没有,within我得到这个错误: Failure/Error: first(:link, "Agree").click NoMethodError: undefined method `click' for nil:NilClass
125 ruby  rspec  capybara 


1
如何查找花费了这么长时间的rspec测试
我们的一个(或几个)测试将永远进行,我们希望对其进行优化。 我们说有1000个测试,所以我无法运行每个文件。 有一种简单的方法可以找到慢速的吗? 这是rspec 1.3
119 rspec 

7
无法将时间与RSpec进行比较
我正在使用Ruby on Rails 4和rspec-rails gem 2.14。对于我的对象,我想updated_at在控制器操作运行后将当前时间与对象属性进行比较,但是由于规格未通过,我感到很麻烦。也就是说,给出以下是规范代码: it "updates updated_at attribute" do Timecop.freeze patch :update @article.reload expect(@article.updated_at).to eq(Time.now) end 当我运行以上规范时,出现以下错误: Failure/Error: expect(@article.updated_at).to eq(Time.now) expected: 2013-12-05 14:42:20 UTC got: Thu, 05 Dec 2013 08:42:20 CST -06:00 (compared using ==) 如何使规格通过? 注意:我也尝试了以下操作(请注意utc添加内容): it "updates updated_at attribute" do Timecop.freeze patch :update @article.reload expect(@article.updated_at.utc).to eq(Time.now) …

1
RSpec和Cucumber有什么区别?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我有6个月的Rails开发经验。我已经构建了一个Web应用程序,该应用程序现在已通过身份验证和授权以及postgresql db使用。 我将继续使用我的第二个Rails应用程序,但是这次,在吸取了教训之后,我想使用TDD进行开发,因为我注意到它更易于扩展和修复错误。它发展缓慢,但从长远来看,它更容易处理。 我听说过Rspec和Cucumber,但被它们彻底弄糊涂了。 我想知道RSpec和Cucumber之间的区别是什么以及它们的用途。 从初学者(也是唯一的开发者)的角度了解是否真的需要测试框架也将很有用。

1
RSpec:功能和请求规范之间有什么区别?
Rspec的功能规格和请求规格之间在概念上有什么区别? 从功能规格文档中: 功能规格是高级测试,旨在通过应用程序行使功能性。他们应该仅通过外部接口(通常是网页)来驱动应用程序。 对于要求规格: 请求规范为Rails的集成测试提供了一个精简的包装,并旨在在整个协议栈中推动行为,包括路由(由Rails提供)而无需进行存根(取决于您)。通过请求规范,您可以: 指定一个请求 在多个控制器之间指定多个请求 在多个会话中指定多个请求 我知道功能规格使用Capybara,而请求规格则不使用。但这几乎不值得采用不同的概念。

4
如何在RSpec中多次说“ should_receive”
我测试中有这个 Project.should_receive(:find).with(@project).and_return(@project) 但是当对象两次收到该方法调用时,我必须做 Project.should_receive(:find).with(@project).and_return(@project) Project.should_receive(:find).with(@project).and_return(@project) 有什么办法怎么说 Project.should_receive(:find).with(@project).and_return(@project).times(2)


4
RSpec:如何测试方法是否被调用?
在编写RSpec测试时,我发现自己写了很多类似这样的代码,以确保在测试执行过程中调用了一个方法(为了论证,我们只能说我不能真正询问状态调用后对象的名称,因为该方法执行的操作不容易看到的效果)。 describe "#foo" it "should call 'bar' with appropriate arguments" do called_bar = false subject.stub(:bar).with("an argument I want") { called_bar = true } subject.foo expect(called_bar).to be_true end end 我想知道的是:是否有比这更好的语法?我是否缺少一些时髦的RSpec令人敬畏的东西,它将上面的代码减少到几行?should_receive听起来应该这样做,但进一步阅读听起来并不完全是这样。

3
如何在Rails中测试问题
考虑到Personable我的Rails 4应用程序中有一个full_name方法,我应该如何使用RSpec对此进行测试? 关注/personable.rb module Personable extend ActiveSupport::Concern def full_name "#{first_name} #{last_name}" end end

16
跳过关于Factory Girl和Rspec的回调
我正在使用创建后回调回调来测试模型,该回调仅在测试时仅在某些情况下运行。如何跳过/运行工厂的回调? class User < ActiveRecord::Base after_create :run_something ... end 厂: FactoryGirl.define do factory :user do first_name "Luiz" last_name "Branco" ... # skip callback factory :with_run_something do # run callback end end

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.