안녕하세요. 이번에는 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
'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 |