0
私はヘルパーにメソッドを持っており、タグとコードに基づいて特定のフラグ(enabled
)クッキー。Rails:mysqlクエリを実行するヘルパーメソッドをテストするにはどうすればいいですか?
def user_enabled?
Code.joins({tags: :user}).
where(code: cookies[:user_code]).
where(users: {enabled: true})
exists?
end
基本的に、タグはユーザに関連付けられ、タグにはタグが関連付けられます。
私の仕様に再作成する方法がわからないので、必要なすべてのレコードがクエリで実行されます。これまでのところ、私は持っています:
it 'returns true when enabled is checked' do
tag = create(:tag, user: create(:user, enabled: true))
Code.create(code: 'enabled', tags: [tag])
cookies[:user_code] = 'enabled'
expect(user_enabled?).to be_truthy
end
しかし、それは偽を返し、私は本当に何が欠けているのか分かりません。ここで
あなたは 'create'がレコードを作成していますか? 'create'の代わりに' create! 'を試してください – Deep
はい、それだけを確認してレコードを作成しています。 – abpetkov
あなたのテストで1行1列の 'where'条件をコメントアウトし、いずれの場合にもtrueを返すかどうかを確認してください。 –