问题标签 [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-4 - 带有 Rails 4 和 Rspec 3 的mutant-rspec
它似乎没有运行我的规范(规范/模型中的日志语句不显示在日志中)。
我有一个带有标准描述块的相当简单的用户模型(描述用户...):
ruby-on-rails-4 - RSpec 模型测试:失败
我正在自学 RSpec (v3.1.7)。我已将 rspec 安装rails g rspec:install
到现有的 Rails 应用程序中 - 新创建的。
我创建了一个模型:rails g rspec:model zombie
. 运行迁移,一切顺利。
在:app/models/zombie.rb:
在:app/spec/models/zombie_spec.rb:
当我运行时在终端(在应用程序目录中):rspec spec/models
我得到:
我按照视频教程进行操作,然后按照视频(使用 RSpec 进行测试)一直到后者。我喜欢在第2章减肥。我错过了什么吗?该视频是否使用旧版本的 rspec 作为视频教程?
在我的迁移文件中:
ruby-on-rails - RSpec中的“be_true”和“be true”有什么区别
任何人都可以用简单的例子解释一下Rubybe_true
和Ruby 之间的区别。be true
我也看到be_true
并被be_false
更改为be_truthy
和be_falsey
我有一个'be true'
有效的例子,但是当我尝试使用'be_true'
或'be_truthy'
规范失败时。
我正在使用 RSpec 版本 3.1.7
ruby-on-rails - RSpec:重新打开类时存根 Rails.application.config 值不起作用?
我在应用程序配置中定义了一个选项。我要测试的课程是在 gem 中定义的(不是我写的)。我想重新开课:
我想使用 RSpec 3 测试这段代码:
如何在运行重新打开类的代码之前存根应用程序配置值。
ruby-on-rails-4 - Rspec 3.1 current_url == http://test.host/venues v application == http://www.example.com/venues
我正在使用 rspec 3.1 测试 Rails 应用程序,期望如下:
这会导致以下故障:
为什么期望域与应用程序指向的位置之间存在差异?
如果我使用测试通过expect(current_path).to eq venues_path
ruby - rspec 带有参数的新语法存根方法并返回固定值
我想存根对象A以使用参数1响应下一个消息并返回“B”字符串。
我想A.stub(:next).with(1).and_return("B")
用新的 rspec 语法写一行,A.allow...
但我找不到在哪里添加该with
部分
ruby-on-rails - 如何防止 RSpec 在生成的规范中使用“Rspec.describe...”和“type:...”?
自从升级到 RSpec 3RSpec.describe
后,我生成的规范文件不仅包含describe
,而且还显式包含了类型,例如:type => :model
. 例如,这是刚刚为名为“Plan”的类生成的模型规范文件:
我宁愿让它看起来像这样(注意第 3 行的更改):
...“类型”调用似乎特别多余,因为我config.infer_spec_type_from_file_location!
在rails_helper
.
如何让 RSpec 生成看起来像我的第二个示例的规范文件?我不想每次都手动编辑它。
ruby - RSpec3 模拟参数期望 - 使用 &block?
我有一个接收块的方法,并将其委托给另一个方法。真的很简单:
我希望 RSpec (v3) 测试接收到的块是否已传递给新方法。我的测试目前看起来像:
但是 RSpec 给了我一个 ArgumentError: `with` 必须至少有一个参数。使用 `no_args` 匹配器来设置不接收参数的期望。有没有办法让 RSpec 期待一个带有特定块的方法调用?
ruby - 如何仅快速失败特定的 rspec 测试脚本?
我有一个 rspec 测试套件,它们分为不同的文件。每个文件都代表一个带有一些测试步骤的测试场景。现在,在某些特定测试中,可能会发生特定步骤失败,但它太耗时并且不需要在该场景中运行其余步骤。
我知道 rspec 中有一个选项 --fail-fast 但是如果我正在运行如下测试: rspec spec/* 这意味着当任何脚本中的第一步失败时,它将中止完整的执行。我只是在寻找在发生故障时中止执行该特定测试场景(测试脚本)但继续执行其他测试场景的机制。
谢谢你的帮助,巴基尔
validation - Rails 4、rspec 3:模型验证测试
我有一个organization
具有属性的对象name, doing_business_as
。我需要验证name
与 不同doing_business_as
。
我有一个匹配的 rspec 文件来验证这一点:
但是,当我运行规范时,它失败了,这就是我得到的:
我期待规范通过并确保这两个属性不能相同。在 Rails 控制台中,我可以模仿预期的行为,但我似乎无法让规范成功“失败”。
我还通过 Rails 控制台检查了它是否按预期工作:
所以我知道功能在那里,但我无法获得可行的测试......