问题标签 [rspec3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1541 浏览

ruby-on-rails - RSpec 3 Error undefined method `get' in request test

After migration on RSpec 3 request test fails. Here is my test

Here is rspec log

What can it be?

0 投票
1 回答
1252 浏览

ruby-on-rails - 使用 rspec 3 测试控制器给出“@routes is nil”

在升级我的 rails 应用程序以使用 rspec 3 后,控制器测试中断了。我错过了什么rails_helper.rb吗?

rails_helper.rb

users_controller_spec.eb

失败:

谢谢!

0 投票
1 回答
1554 浏览

ruby-on-rails-4 - RSpec 3、capybara 2.3.0、Guard 2.6.1、Rails 4.1.1 未初始化常量(NameError)

我最近不得不将一个项目从 rails 4.0 迁移到 rails 4.1,在此过程中,我还将 RSpec 更新为 RSpec (3.0.0)。

该项目之前在 Capybara 测试的某些功能规范中具有以下内容:

需要'spec_helper' 需要'support/integration_helpers.rb'
需要'support/admin_support/admin_user_creation_helpers.rb'

包括 BuildDefaults

include BuildDefaults引用一个模块并spec/support/build_defaults.rb具有各种帮助方法以确保已正确填充数据库。由于某种原因,这现在已经停止工作并给出以下错误(和堆栈跟踪):

path_to/spec/features/admin_features/admin_login_out_spec.rb:4:in <top (required)>': uninitialized constant BuildDefaults (NameError) from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:in block in load_spec_files' from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/ rspec/core/configuration.rb:1057:in each' from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1057:in load_spec_files' 来自 /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/runner。 rb:97:in setup' from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:85:inrun' from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:70:in run' from /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/lib/rspec/core/runner.rb:38:ininvoke ' 来自 /Users/u_name/.rvm/gems/ruby-2.1.2@gemset_name/gems/rspec-core-3.0.2/exe/rspec:4:in <top (required)>' from /Users/u_name/Documents/rails/work/c_central_4.1.1/gemset_name/bin/rspec:7:in ' 来自 /Users/u_name/.rvm/rubies/ruby -2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from /Users/u_name/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in require' from -e:1:in `'

有人会碰巧知道为什么会这样吗?

对于此事,我将不胜感激。

我已经查看了与这个标题相似的其他各种 SO 问题,但似乎没有一个是相关的。

旁注1

值得注意的是,我已经从我的测试环境中删除了 Spork,因为它由于某些原因不能很好地运行,而是将项目配置为使用 Spring。虽然我认为这与问题无关,但我确实必须完全重建测试环境(rails g rspec:install例如运行),然后使用Transpec更新 Rspec 语法。

0 投票
3 回答
4111 浏览

ruby-on-rails - rspec 3.0 belongs_to 关联

我正在尝试使用 rspec 3.0 测试 belongs_to 关联,但我一直遇到错误

NoMethodError:RSpec::Core 的未定义方法“belong_to”

结尾

我在 rspec 3.0 的文档中找不到任何东西来测试高级关联。请帮忙!

0 投票
1 回答
902 浏览

ruby - 强制 RSpec 3 显示单行字符串的差异?

我正在比较包含 html 且不包含换行符的长字符串。

根据这个(https://www.relishapp.com/rspec/rspec-expectations/docs/diffing),RSpec将区分多行字符串,但不会区分单行字符串。

有没有办法覆盖它并让它区分单行字符串?

我正在使用 RSpec 3。

0 投票
1 回答
1567 浏览

ruby-on-rails-3 - 控制器上的存根静态模块方法

我无法让我的 rspec 测试模拟方法A::B.auth

使用 rspec 3 和 rails 3.2。测试类型:控制器。

我希望模拟返回一个简单的哈希:{value: true}。这可能吗?

0 投票
2 回答
371 浏览

ruby-on-rails - RSpec HtmlMatchers have_tag:我们可以使用正则表达式来匹配HTML属性吗?

试图在我的一个视图呈现src的标记中指定属性的一部分值img,我希望使用以下语法:

它不起作用,这很奇怪,因为 nokogiri 似乎正确解释了表达式(请参阅(?-mix:...)标准)

所以我想知道我是否忘记了什么,或者这根本不可能。提前致谢

0 投票
1 回答
72 浏览

ruby-on-rails - Rspec3:向控制器发送异常

我想测试我的控制器并确保它在收到ActiveRecord::RecordNotFound

控制器:

我的测试:

我完全不确定我的测试,目前会引发错误:NoMethodError: undefined method 'each' for #<String:0xbcdf388>

如何正确编写我的测试?

0 投票
1 回答
1546 浏览

ruby-on-rails - rspec 3 允许消息错误

在 rspec 2 中,我可以做到这一点。

let(:user_1) { create :user_1) # factoryGirl 对象

User.stub(:where).and_return(user_1)

user_1.stub(:where).and_return(user_1)

但在 rspec 3 中,它发生了故障。

let(:user_1) { create :user_1) # factoryGirl 对象

allow(User).to receive(:where).and_return(user_1)

allow(user_1).to receive(:where).and_return(user_1) # 这一行出现失败

错误信息是,

失败/错误:allow(product_1).to receive(:where).and_return(product_1)

不实施:哪里

我应该怎么做才能通过这个例子?

---------- 更新问题----------

在控制器中,

在规范中,

那么失败消息是,

before首先,我在块中删除了这个语句,

然后我收到一条失败消息,

所以我尝试了这个(返回数组),

然后我收到一条失败消息,

0 投票
3 回答
3552 浏览

ruby-on-rails - Rspec 3. 未定义的局部变量或方法 `response' for #

我想用 rspec 测试 API 控制器。所以这是一段简单的代码:

但我有一个错误: