2011-03-22 2 views
0

rspec 테스트에서 초보자입니다. Rails에서 rspec 테스트에 관한 두 가지 질문이 있습니다. 내가 액티브 인 '자동차'모델,레일즈의 Rspec 테스트에 관한 초보자 질문

class Car < ActiveRecord::Base 
    ... 
    def get_color 
    .. 
    end 
end 

질문이있는 경우

는 RSpec에 테스트 (나는 모든 보석과 준비 구성이) 1.는 차이가 무엇

before(:each) do 
    @my_car=Factory.create(:car, params) 
end 

,113

사이

(차이점은 무엇입니까? rspec 테스트 범위 안에 rspec 테스트에서 동일한 효과가 없습니까? (각)뿐만 아니라 전 내부 문 할뿐만 아니라, ... 설명 문) 2. 당신이 내 모델에서 보듯이

질문을하는 인스턴스 기능 get_color있다, 내 rspec 테스트에서이 인스턴스 함수를 다음과 같이 호출 할 수 있습니까?

@my_car=Factory.create(:car, params) 
@my_car.get_color #Can I call instance method in rspec test? 

저는 이것을 시도했지만, 인스턴스 메소드가 rspec 테스트에서 예상 한 결과를 반환하지 않는 것으로 보입니다. 그러나 rspec 테스트 코드 외부에서 작동하지만 확실하지 않습니다.

누구나 두 가지 질문에 대해 명확히 할 수 있습니까?

+1

공장을 사용하기 위해 나에게서 단 하나의 – shingara

답변

3

질문 1 :

공장 소녀 대신 2 문과 차이점은 없습니다. Factory girl을 사용하면 Object를 만드는 동안 몇 가지 기본 동작을 사용할 수 있습니다. 두 번째 경우에는 직접해야합니다.

질문 2 :

테스트 방법이 필요합니다. 예를 리턴 0으로 추가 할 수있는 경우 :

it 'should return 0' do 
    @my_car.get_color.should == 0 
end 

우리는

0

Q1 더 많은 코드와 더 구체적인 수 없습니다 : 공장보다 유연하고 내가 그들을 좋아하지만 그것은 거의 동일합니다.

질문 2 : @ my_car.get_color를 실행할 수 있지만 실행 만하면 아무런 의미가 없습니다. 실제 실행없이 (일반적인 rspec 연습) 조건을 만족하는지 (아마 사용해야하는지) 또는 원하는 값을 반환하기 위해 스텁할지 여부를 확인해야합니다.

+0

+1 대신 2 개의 질문을하는 것이 더 좋다. 그들은 더 건조한 경향이있다. –