ruby-on-rails - 在 rspec 的描述 block 中包含类型有什么作用?

标签 ruby-on-rails rspec

我不认为 type部分是必要的,它实际上是做什么的?

RSpec.describe Auction, :type => :model do

最佳答案

type元数据对于包含正确的 rspec-rails 支持功能是必要的。可以有不同的规范类型,包括 controller , view , helper , mailer等。从here查看更多.型号规范有更详细的描述 here .

注: 3.0.0 之前的 RSpec 版本会根据规范在文件系统上的位置自动将元数据添加到规范中。在 RSpec3 中,必须在配置中单独定义此行为:

​# spec/rails_helper.rb
RSpec.configure do |config|
  config.infer_spec_type_from_file_location!
end

因此 - 如果您使用的是 RSpec 3,那么在没有上层配置的情况下,您不能在创建规范时忽略类型声明。

也可以像这样定义自己的自定义元数据类型:
​# set `:type` for serializers directory
RSpec.configure do |config|
  config.define_derived_metadata(:file_path => Regexp.new('/spec/serializers/')) do |metadata|
    metadata[:type] = :serializer
  end
end

关于ruby-on-rails - 在 rspec 的描述 block 中包含类型有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45023022/

相关文章:

testing - 澄清此默认 rspec Controller 测试并使其通过

ruby-on-rails - RSpec 的错误行为期望使用 destroy 更改计数

ruby-on-rails - Rspec:期望模块接收方法

ruby-on-rails - 如何在 RSPEC 中对邮件传递进行 stub

ruby-on-rails - Minitest ruby​​ 中的模拟或 stub 日期时间

ruby-on-rails - Rails 5 default_url_options 怪事

ruby-on-rails - 带有 js 驱动程序的 capybara 不会生成选择选项

ruby-on-rails - JS/Coffeescript 中的环境变量

ruby-on-rails - Rspec:如何创建模拟关联

ruby-on-rails - Rails 5.1 测试更改的属性 弃用警告