2013-02-15 1 views
1

:Shoulda와의 관계를 테스트 할 좋은시기는 언제입니까? RSpec에와 당신이 할 수 했어야로

it { should belong_to(:product) } 

나는 말했다 사양은 관찰 된 동작을 지정해야합니다. 이 사양은 모델에 기록 할 수있는 코드가 중복 된 것처럼 보입니다. 이런 시험을 실제로 사용할 시간과 장소가 있습니까?

+0

필자는 전에 블록을 가지고 피사체를 지정할 때 내 모델 등을 지정하여 구문을 줄이기 위해'its (: last_name) {should == user.last_name}'을 사용합니다. – coletrain

답변

3

큰 문제는 왜 이것을 테스트하는 것이 좋지 않은가입니다. 스펙에 관찰 된 동작을 지정해야한다고 말하면 belongs_to 모델에 자동으로 연결에 액세스하는 방법이 주어집니다. 관찰 할 대상이 아닙니까? 당신 방법 대신 #product 방법을 테스트하지만 어떻게 그 테스트가 가겠습니까?

it "has an association to a product" do 
    product = Product.create 
    model = Model.create(:product_id => product.id) 
    model.product.should eq product 
end 

단일 라이너를 사용하는 것보다 실제로 좋습니까?

it { should belong_to(:product) } 

코드가 어떤 방식 으로든 중요하면 테스트해야합니다.

TDD을 따르는 경우 먼저 연관성을 지정하도록 테스트를 작성한 다음 해당 테스트를 유지 관리하는 코드를 입력하십시오.

관련 문제