问题标签 [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.
ruby-on-rails - Capybara JS 测试在单独的线程上运行?
当我放置 js: true 时,我看不到让我的 Capybara 测试工作。我认为这与我在测试中处理数据库的方式有关。这里的任何帮助都会很棒。这是我的错误:
我的 rails_helper.rb
ruby-on-rails - Opal js 更新后 Capybara 规格失败?
以前我曾经加载过 opal.js、opal-parser.js、opal-jquery.js(版本 0.3x)。现在我添加了 gem opal 和 opal-rails(版本 0.6.2)而不是 js 文件。
以前我的整个测试服(capybara + rspec)曾经通过,但在更新 capybara 规格后开始失败。有时它的行为是有线的(即在 Firefox 中通过但在 chrome 中失败)。
示例错误之一是
unknown error: Runtime.evaluate threw exception: RangeError: Maximum call stack size exceeded
据说 opal 和 rspec 存在兼容性问题。
如果有人帮助我解决此问题,我将不胜感激。
rspec - rspec3:如何模拟分页数组?
我正在使用 rspec3,我正在尝试处理新的双重方法验证功能。我想为这样的分页数组创建一个双精度:
但是,这会导致此错误:
这是因为 rspec 在给定 object_double 时会创建一个验证双精度。我真的不想尝试创建一个响应诸如:[]
. 全局设置mocks.verify_partial_doubles = false
也无济于事(而且对于这个问题似乎也有点过分了),大概是因为 object_double 旨在进行验证。
我知道我可以在将数组翻倍之前对数组进行分页,但我觉得我不应该这样做。有什么我想念的吗?我应该要求 rspec 提供基于每个方法禁用验证的能力,还是提供创建非验证对象双精度的能力,还是应该以其他方式编写此测试?
在此期间,我可以写这样的东西:
...但它看起来不再像一个简单的 rspec 模拟了。
ruby-on-rails-4 - 制造商不加载
在我的规格中尝试使用制造商时,我得到一个空数组。我的猜测是制造商文件尚未加载。如果我在 RSpec 初始化之后加载制造商文件,那么Fabrication::DuplicateFabricatorError
会引发 a。这是我的设置:
- 导轨 4.1.4
- rspec 核心 3.1.5
- rspec-rails 3.1.0
- 制造 2.11.3
.
这是应该工作但不是的代码:
在为我的制造商返回一个空数组后,我在运行 specs: 时收到此错误undefined method 'email' for []:Array
:我希望得到一个合格的规格。
ruby-on-rails-4 - Rspec Change Matcher 和工厂女孩
我正在使用工厂女孩来创建我的对象。我想知道为什么我必须执行以下操作:
如果我不覆盖插槽,而只使用 factory_girl 创建的插槽,则测试不会通过。为什么?
ruby-on-rails - Rspec 何时为真!= 为真?
我正在阅读 Hartl 的 RoR 教程,在 rspec 测试中有一个块可以检查密码是否匹配。在这个块是这一行:
失败了。但我知道代码有效,因为如果我输入以下代码:
在块中它输出“真”。真正让我震惊的是我把这条线:
代替上面的行......并且测试仍然失败。那是怎么回事?
ruby-on-rails-3 - 在 RSpec 3 的帮助器类中使用存根时出现 NoMethodError - 但不是 RSpec 2?
我的spec/support
目录下存储了许多帮助程序类,我在许多测试中重复使用它们。例如,foo_helper.rb
Foo
在许多测试中使用,所以我只会require ../spec/support/foo_helper.rb
在我希望能够使用的每个规范中使用FooHelper.stub_thing
. 这一切在 RSpec 2.x 中运行良好
升级到 RSpec 3.1 后,我看到以下折旧警告:
因此,添加rspec-actvemodel-mocks
到我的 Gemfile 中:
并按照文档,我将代码更改为:
然后导致我的测试失败并出现以下错误:
怎么allow_any_instance_of
不能定义,when any_instance
and stub
are?!
ruby-on-rails - 测试 ActiveRecord 回调的存在
如何测试模型中是否存在回调,特别是通过创建记录触发的回调,例如after_create
or after_commit on: :create
?
这是一个带有它调用的 (empty) 方法的示例回调。
这是使用 RSpec 3 的待定规范。
使用消息期望来测试方法是否被调用似乎是要走的路。例如:
但这不起作用。另一种方法是测试当一个记录被创建时,被调用的方法内部发生了一些事情(例如发送的电子邮件、记录的消息)。这意味着该方法确实被调用,因此存在回调。但是,我发现这是一个草率的解决方案,因为您真的在测试其他东西(例如发送的电子邮件、记录的消息),所以我不是在寻找这样的解决方案。
ruby - RSpec 参数匹配哈希数组
我想使用 rspec 提供的参数匹配器来匹配散列数组。理想情况下,这是我想要的代码:
这对我来说是一个参数不匹配的错误。我能想出的唯一可行的解决方案如下:
我只是做错了什么吗?
ruby - Rspec - 如何存根第 3 方异常
我正在尝试测试我是否能够捕获这些 AWS 异常:
我的 Rspec 3 代码:
但是当我测试这个存根时,我得到一个 TypeError:
我必须包含 AWS::Errors::ServerError 吗?如果是这样,我该怎么做?我正在使用 aws-sdk-v1 gem。
谢谢。