簡體   English   中英

運行rspec測試時不存在關系

[英]Relation does not exist when running rspec tests

我在group_spec.rb文件中有這個:

describe Group do
  it { should have_many(:users) }
end

這在我的user_spec.rb文件中:

describe User do
  it { should belong_to(:group) }
end

當我運行測試時,我得到:

Failure/Error: it { should have_many(:users) }
ActiveRecord::StatementInvalid:
PGError: ERROR:  relation "users" does not exist

   LINE 4:              WHERE a.attrelid = '"users"'::regclass
                                           ^
   :             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
                 FROM pg_attribute a LEFT JOIN pg_attrdef d
                   ON a.attrelid = d.adrelid AND a.attnum = d.adnum
                WHERE a.attrelid = '"users"'::regclass
                  AND a.attnum > 0 AND NOT a.attisdropped
                ORDER BY a.attnum

在我的group.rb文件中,我有:

has_many :users

在我的users.rb文件中,我有:

belongs_to :group

我覺得我錯過了一些顯而易見的事情。 任何幫助,將不勝感激。 謝謝!

約翰

有同樣的問題,並在cuvius的評論中使用了解決方案。 在這里發帖,以便人們不要錯過它!

運行: RAKE_ENV=test rake db:migrate:reset db:test:prepare設置測試數據庫。

不幸的是rake db:test:preparerails 4+中已棄用,所以現在不是最好的解決方案。
我想在你的用戶工廠類中寫為User 出現此問題是因為工廠在遷移完成之前加載。
所以要解決這個問題:
從中更改工廠類名稱

factory :user, class: User do
  # ...
end

factory :user, class: 'User' do
  # ...
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM