标签: rspec-rails

jasmine setup error rails 3.1 ActiveSupport :: Concern(NameError)

我正试图按照他们网站上的描述设置Jasmine Gem.运行后:

bundle exec jasmine init
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

/Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/railties-3.1.0.rc1/lib/rails/railtie/configurable.rb:4:in `<module:Configurable>': uninitialized constant ActiveSupport::Concern (NameError)
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/railties-3.1.0.rc1/lib/rails/railtie/configurable.rb:3:in `<class:Railtie>'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/railties-3.1.0.rc1/lib/rails/railtie/configurable.rb:2:in `<module:Rails>'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/railties-3.1.0.rc1/lib/rails/railtie/configurable.rb:1:in `<top (required)>'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/railties-3.1.0.rc1/lib/rails/railtie.rb:129:in `inherited'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/jasmine-1.0.2.1/lib/jasmine/railtie.rb:3:in `<module:Jasmine>'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/jasmine-1.0.2.1/lib/jasmine/railtie.rb:2:in `<top (required)>'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/jasmine-1.0.2.1/lib/jasmine.rb:12:in `require'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/jasmine-1.0.2.1/lib/jasmine.rb:12:in `<top (required)>'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/jasmine-1.0.2.1/bin/jasmine:4:in `require'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/gems/jasmine-1.0.2.1/bin/jasmine:4:in `<top (required)>'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/bin/jasmine:19:in `load'
from /Users/sts-158imac/.rvm/gems/ruby-1.9.2-p180@fmn/bin/jasmine:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)

testing rspec-rails ruby-on-rails-3 jasmine

7
推荐指数
1
解决办法
652
查看次数

在请求规范中传递cookie

我正在尝试使用rspec 2和rails 3在执行GET请求时传递cookie.

到目前为止我已经尝试了以下内容.

get "/", {}, {"Cookie" => "uuid=10"} # cookies[:uuid] is nil
request.cookies[:uuid] = 10 # request is nil
@request.env["Cookie"] = "uuid=10" # @request is nil
helper.request.cookies[:uuid] # helper is not defined
cookies[:uuid] = 10 # cookies[:uuid] is nil
controller.cookies[:uuid] = 10 # cookies is nil
Run Code Online (Sandbox Code Playgroud)

可能吗?

rspec rspec2 rspec-rails

7
推荐指数
4
解决办法
5454
查看次数

Capybara + RSpec,spec/features dir被rspec忽略.命令?

我使用的是新水豚DSL使用RSpec以下位于短方针这里 并添加到测试spec/features目录中运行以及单独的,即.

rails_project$ rspec spec/features/my_first_feature.rb

然而,spec/features目录完全忽略了,当我尝试运行整个测试spec/这样的目录:

rails_project$ rspec .

指南中没有提到如何包含这个目录(或其他目录)来完成我想要的包含.我真的需要这个来持续集成我的项目.

有人可以告诉我怎么做吗?

谢谢!

ruby testing rspec capybara rspec-rails

7
推荐指数
1
解决办法
2227
查看次数

使用Rspec进行测试时Zeus失败了

当我运行此命令时: rspec spec/controllers/messages_controller_spec.rb

我明白了:

完成0.54446秒

2个例子,0个失败

随机种子6226

很好.

但是,当我运行此命令时:

zeus rspec spec/controllers/messages_controller_spec.rb

我明白了:

完成0.5356秒

2个例子,0个失败

随机种子0

这不是问题,但我马上得到了这个:

F.

失败:

1)MessagesController POST #create创建一个带有HTTP 200状态代码的消息

 Failure/Error: post :create, message: "test message"
 NameError:
   undefined method `post' for #<RSpec::Core::ExampleGroup::Nested_2::Nested_1:0xb0085d8>
 # ./spec/controllers/messages_controller_spec.rb:10:in `block (3 levels) in <top (required)>'
 # -e:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)

完成0.10724秒2个例子,1个失败失败示例:

rspec ./spec/controllers/messages_controller_spec.rb:9#MessagesController POST #create使用HTTP 200状态代码创建一条消息

ruby rspec ruby-on-rails zeus rspec-rails

7
推荐指数
1
解决办法
1008
查看次数

使用rspec测试来自'标题的邮件程序

我正在开发一个ruby on rails项目,我正在尝试测试'from'头字段,但测试用例失败了.

这是我在邮件程序中设置的内容

def some_actoin
  mail(to: xyz@example.com,
         from: '"Example" <service@example.com>',
         subject: "test subject")
  end
end
Run Code Online (Sandbox Code Playgroud)

在rspec测试案例中,

mail.from.should == '"Example" <service@example.com>'
Run Code Online (Sandbox Code Playgroud)

我的测试用例失败,出现以下错误

expected: '"Example" <service@example.com>'
got: [service@example.com] (using ==)
Run Code Online (Sandbox Code Playgroud)

用from-header电子邮件地址测试from-header标题是错误的方法吗?

感谢任何帮助!

testing ruby-on-rails actionmailer rspec-rails

7
推荐指数
1
解决办法
575
查看次数

`method_missing':`build`在示例组中不可用(例如`describe`或`context`块)

我想删除FactoryGirl.build(:user)每次我想创建一个用户,所以我添加了这些行:

RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
end
Run Code Online (Sandbox Code Playgroud)

到了spec_helper.rb.但是这会产生以下错误:

`method_missing': `build` is not available on an example group (e.g. a `describe` or `context` block). It is only available from within individual examples (e.g. `it` blocks) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). (RSpec::Core::ExampleGroup::WrongScopeError)
Run Code Online (Sandbox Code Playgroud)

然后我删除了所有上下文/描述块,但这并没有改变任何东西.你有没有遇到同样的问题,我该如何解决?

目前我的测试看起来像这样:

require 'rails_helper'

RSpec.describe User, type: :model do
  user = build(:user)
  project = build(:project)

  it "is valid with a firstname, lastname, email and password" do …
Run Code Online (Sandbox Code Playgroud)

testing unit-testing rspec ruby-on-rails rspec-rails

7
推荐指数
1
解决办法
5059
查看次数

使用回形针进行RSpec控制器测试

因此,使用rails 4.2.0和最新的rspec,我为我的控制器生成了一个基本测试.我只是坚持如何在valid_attributes中测试回形针图像.

从搜索到目前为止,我已经想出了这个(这不起作用):

let(:valid_attributes) {{name: 'The New Room', description: 'This is the brand new room', size: '250', capacity: '100', price: '650', picture: '#{rails.root}/spec/support/room-controller-valid.jpg', rmcat_id: '1'}}
Run Code Online (Sandbox Code Playgroud)

还有另一种方法吗?或者我是否需要包含帮助程序才能使回形针与RSpec一起使用?

我在终端得到的错误是:

Failure/Error: room = Room.create! valid_attributes Paperclip::AdapterRegistry::NoHandlerError: No handler found for "\#{rails.root}/spec/support/room-controller-valid.jpg

rspec ruby-on-rails paperclip rspec-rails

7
推荐指数
1
解决办法
2097
查看次数

如何在Rails 5中期望RSpec中的Params哈希?

我正在升级到Rails 5,即使我传递了我应该的数据,它已经破坏了我的RSpec.

问题显然在这里:

expected: ({"name"=>"MyString"})
got: (<ActionController::Parameters {"name"=>"MyString"} permitted: true>)
Run Code Online (Sandbox Code Playgroud)

这意味着我需要能够修复我的控制器断言,以便它期望后者.这是需要改变的路线.

expect_any_instance_of(Hospital).to receive(:update).with({ "name" => "MyString" })
Run Code Online (Sandbox Code Playgroud)

可能是这样的

expect_any_instance_of(Hospital).to receive(:update).with(params: { "name" => "MyString" }, permitted: true)
Run Code Online (Sandbox Code Playgroud)

我只是不知道语法是什么,并且无法在Rails 5的分散文档中找到它,或者在Rails 5上有关RSpec的不存在的注释/ Stack Overflow问题.

完整错误和控制器规范

2) HospitalsController PUT update with valid params updates the requested hospital
 Failure/Error: if @hospital.update(hospital_params)

   #<Hospital id: 43, name: "MyString", reference_code: "RefCod", image_file_name: nil, image_content_type: nil, image_file_size: nil, image_updated_at: nil, contact_phone: "+61-000-000-000", website_link: "www.example.com", street_number: "01", street: "Somewhere St", suburb: "Suburb", state: "ACT", postcode: "1111", description: "MyText MyText …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails rspec-rails ruby-on-rails-5

7
推荐指数
1
解决办法
2044
查看次数

RSpec - 加载时发生错误 - 您是说吗?

我想从 TDD 开始,但我遇到了这个错误,我正在使用 rvm - ruby​​ 3.0.0 和 Rails 6.1.1

An error occurred while loading ./spec/models/user_spec.rb. - Did you mean?
                rspec ./spec/spec_helper.rb

Failure/Error: require File.expand_path('../config/environment', __dir__)

LoadError:
  cannot load such file -- rexml/document
 /home/manci/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:34:in `require'
 /home/manci/.rvm/gems/ruby-3.0.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `block in require'
 /home/manci/.rvm/gems/ruby-3.0.0/gems/activesupport-6.1.1/lib/active_support/dependencies.rb:332:in `require'
 /home/manci/.rvm/gems/ruby-3.0.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/firefox.rb:22:in `<main>'
 /home/manci/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

ruby rspec ruby-on-rails rspec-rails

6
推荐指数
2
解决办法
8438
查看次数

Rails 6 和 rspec 中的并行测试

我正在尝试使用 rspec 和 Rails 6 进行并行测试。根据他们的文档,只需要添加 PARALLEL_WORKERS=15 ,其中 15 是工作人员的数量。但是,这适用于测试用例而不适用于 rspec。

有人找到了让它与 rspec 一起使用的解决方案吗?

https://edgeguides.rubyonrails.org/testing.html#parallel-testing

rspec parallel-testing rspec-rails ruby-on-rails-6

6
推荐指数
1
解决办法
4009
查看次数