RSpec 3.10测试belongs_to关联时报undefined method `belong_to'如何解决
RSpec
belong_to 匹配器报错解决方法 belong_to 这类针对Rails模型关联的测试匹配器不属于RSpec官方核心库,由 shoulda-matchers gem 提供,按以下步骤配置即可正常使用:
1. 安装依赖
在项目Gemfile的development、test分组中添加shoulda-matchers,适配RSpec 3.10推荐使用4.0及以上版本:
group :development, :test do gem 'shoulda-matchers', '~> 5.0' end
添加后执行bundle install完成安装。
2. 添加RSpec配置
打开项目的spec/rails_helper.rb文件,在RSpec配置块之外添加如下配置:
Shoulda::Matchers.configure do |config| config.integrate do |with| with.test_framework :rspec with.library :rails end end
注意不要将该配置写在
spec_helper.rb中,否则会因为未加载Rails上下文导致配置失效。
3. 确认测试用例配置
你当前的测试代码已经指定了type: :model符合要求,如果你将模型测试放在spec/models目录下,默认会自动识别类型,无需手动指定。完成配置后重新执行测试即可正常使用belong_to匹配器。
内容的提问来源于stack exchange,提问作者Petros Kalafatidis
相关产品推荐
相关产品推荐

