2017-04-21 1 views
0

모델 클래스 메서드를 테스트하려고합니다. 여기에 내가 RSpec을 실행할 때 나는 오류 class_method을 얻고있다 Rspec : 테스트 모델 클래스 메서드

RSpec.describe Abc::Dbc, type: :model do 
    let(:user) { create(:user) } 
    let(:dbc) { build_stubbed(:dbc, user: user) } 

    describe '.class_method' do 
    it 'returns column value' do 
     response = dbc.class_method(user.user_id) 
     expect(response.column). to eq('value') 
    end 
    end 
end 

그러나

RSpec에
FactoryGirl.define do 
    factory :dbc, class: Abc::Dbc do 
    column { 'value' } 
    ... 
    end 
end 

공장
class Abc 
    class Dbc < ActiveRecord::Base 
    self.table_name = 'vSomeView' 

    def self.class_method(user_id) 
     Dbc 
     .select('vSomeView.column') 
     .where("vSomeView.UserID = #{user_id}") 
     .first 
    end 
    end 
end 

같은 모델의 모습입니다. 내가 잘못하고 있는게 뭐지?

답변

1

팩토리 아가씨 build에 인스턴스를 사용하면 인스턴스는 class에서 인스턴스화됩니다. 당신이 원하는 무엇

Abc::Dbc.class_method(...) 
입니다
관련 문제