Tag: rspec

保留黄瓜中的变量?

我想访问差异Given / Then / When子句中的变量。 如何保存变量以便它们可以在任何地方访问? Given(#something) do foo = 123 # I want to preserve foo end Then(#something) do # how to access foo at this point??? end

如何测试ActiveRecord中哪些validation失败?

我有这样的模型: class User (2..5) end 我想测试一下这个validation: it “should not allow too short name” do u = User.new(:name => “a”) u.valid? u.should have(1).error_on(:name) end 但是它没有测试在name设置了哪种错误。 我想知道,如果是too_short , too_long ,或者其他一些validation失败了。 我可以在errors数组中查找消息文本,如下所示: u.errors[:name].should include(I18n.t(“activerecord.errors.models.user.attributes.name.too_short”)) 但是当我在locale文件中设置activerecord.errors.messages.too_short而不是特定于模型的消息时,这将失败。 那么,是否可以检查出现了哪种错误?

测试rails app的综合指南

是否有关于测试rails应用程序的全面指南。 我正在寻找指导,告诉我应该测试什么,我应该如何测试它,特别是使用Rspec。 很多例子将不胜感激。

如何使用RSpecs valid_session?

我在RSpec中找到valid_session的例子时遇到了麻烦,现在所有的脚手架测试在添加授权后都被破坏了。 通过Michael Hartl的Rails教程,我正在使用此处描述的身份validation,除了我要求所有页面的登录并使用’skip_before_filter’进行登录等。 我添加了一个用户夹具,我已validation它已加载: userexample: id: 1 name: Example Name email: examplename@example.com password_digest: $2a$10$NuWL8f2X0bXaCof3/caiiOwlF2rago7hH10JECmw1p75kEpf0mkie remember_token: YXjPrFfsK8SFQOQDEa90ow 然后在控制器规范中 def valid_session { remember_token: “YXjPrFfsK8SFQOQDEa90ow” } end 会话助手的代码 module SessionsHelper def sign_in(user) cookies.permanent[:remember_token] = user.remember_token self.current_user = user end def signed_in? return !current_user.nil? end def sign_out self.current_user = nil cookies.delete(:remember_token) end def current_user=(user) @current_user = user end def […]

rspec版本2.14的未定义方法`rspec_reset’

我正在尝试使用rspec版本2.14执行测试用例,我收到了以下错误 undefined method `rspec_reset’ for 我想在类上使用rspec_reset。 相同的测试用例正在使用rspec 2.13.1。 那么在2.13之后rspec_reset方法是否可用?

RSpec错误“未初始化的常量FactoryGirl(名称错误)”

我尝试运行我的RSpec测试: rspec comments.rb 但不断得到同样的错误(见标题)。 在有人询问之前我已经将factory_girl添加到spec_helper.rb。 spec/factories/comments.rb文件的内容是: FactoryGirl.define do factory :comment do comment “MyString” task_id 1 end end 这是gemfile的测试组,其中包含了factory_girl_rails: source ‘http://rubygems.org’ … group :development, :test do gem ‘debugger’ gem ‘factory_girl_rails’ gem ‘rspec-rails’ end …

Rails:rspec中url helper的主机名错误

Url帮助程序(例如root_url)在app控制器和rspec示例中返回不同的主机名。 我已成功地在我的rails应用程序中为url helpers设置域,如下所示: class ApplicationController < ActionController::Base def default_url_options {host: "foo.com", only_path: false} end end 例如,root_url在应用程序中输出“http://foo.com/”,但在我的请求规范中输出“http://example.com”。 在rails 3.2中全局应用这些url选项的建议方法是什么,以便它们影响我的规范? url选项不需要是动态的。

如何测试Rails中的send_data方法?

如何在Rails中测试send_data方法?

使用Rspec测试“Post create”

我正在尝试用Rspec测试“Post create”动作。 代码如下: def valid_attributes { :zone => Flymgr::Zone.new(:countries => Flymgr::ZoneCountry.first, :name => ‘USA’, :description => ‘USA Flight’, :zipcodes => ”), :price => ‘100.00’, :class => ‘first’, } end def valid_session {} end before(:each) do @request.env[“devise.mapping”] = Devise.mappings[:admin] admin = FactoryGirl.create(:admin) sign_in admin end describe “POST create” do describe “with valid params” do it “creates […]

Capybara – 提交没有按钮的表格

我试图提交一个没有按钮的表单只使用Capybara和Rspec(没有Cucumber或Selenium,我知道已经存在一个问题)。 我已经看到有一个要点是添加一个方法来提交没有按钮的表单: module SubmitRackTestFormWithoutButton def submit_form! Capybara::RackTest::Form.new(driver, form).submit({}) end end Capybara::RackTest::Node.send :include, SubmitRackTestFormWithoutButton https://gist.github.com/989533 ,但我没有让它工作,我对它发表了评论: 我得到未定义的方法`submit_form!’ for #Capybara :: Node :: Element:…实际上是通过“Capybara :: RackTest :: Node.send:include,SubmitRackTestFormWithoutButton”方法submit_form! 添加到节点(而不是元素),但找到返回元素 您是否有一些想法可以解决这个问题,或者其他解决方案来提交没有按钮的表单? 谢谢