본문 바로가기

Ruby On Rails/RSpec

model spec 작성방법

안녕하세요. 이번에는 model spec에 대해 알아보겠습니다.

 

1. model spec 이란?

1) RSpec reference 뿐만 아니라 shoulda-matchers reference도 참고를 해서 작성을 해주시면 됩니다.

2) associations 에 대한 테스트 코드는 작성할 필요가 없다고 합니다.

a. 왜냐하면 association에 대한 테스트는 model 안에서 작은 테스트가 아니라 통합 테스트 단계에서 테스트가 될 것이기 때문에 가치가 없다고 합니다.

3) 인스턴스 변수에 대한 validation은 아래와 같이 작성을 해주시면 되겠습니다.

2. 작성방법

RSpec.describe RetailStore, type: :model do
  let(:retail_store) { build(:retail_store)}

  describe 'validations' do
    it { is_expected.to validate_length_of(:styleTagIdxs)}
    it { is_expected.to validate_length_of(:targetTagIdxs)}
    it { is_expected.to validate_length_of(:genderIdxs)}
    it { is_expected.to validate_length_of(:itemIdxs)}
  end

  describe "#foreign_store?" do
    context '스토어' do
      it '한국' do
        expect(retail_store.country).to eq('ko')
      end
      it '포린' do
        retail_store.country = 'en'
        expect(retail_store.country).not_to eq('ko')
      end
    end
  end
end

- shoulda-matchers reference를 참고해서 validations 테스트를 해주시면 되겠습니다.

- model에서 작성된 메서드들에 대한 내용을 테스트해주시면 되겠습니다.

 

reference

github.com/thoughtbot/shoulda-matchers

'Ruby On Rails > RSpec' 카테고리의 다른 글

rspec reference 정리  (0) 2021.04.10
나머지 스펙과 디버그에 대한 이야기  (0) 2021.04.10
Feature spec 작성방법  (0) 2021.04.10
Service spec 작성방법  (0) 2021.03.20
FactoryBot 작성방법  (0) 2021.02.06