2016-07-13 16 views
1

가상의 질문 일 뿐이므로 코드가 없지만 rspec에서 인스턴스 변수에 액세스하고 조작하는 방법은 무엇입니까?rspec에서 인스턴스 변수에 액세스하기

예를 들어 클래스 내부의 initialize 메소드에서 @counter 변수가있는 경우 @counter가 특정 숫자이면 특정 메소드가 true를 반환해야한다는 테스트를 작성할 수 있습니다. 그리고 그것이 다른 수와 같으면, 그 메소드는 false를 리턴해야합니다.

답변

1
describe Foo do 
    context 'When counter is even' do 
    let(:foo){ Foo.new(4) } 

    specify '#even?' do 
     expect(foo.even?).to be_true 
    end 
    end 
end 

는 질문에 따르면, @counter는 초기화 방법에 설정됩니다. 따라서 #even? 메서드는 @counter을 검사합니다.

+0

명확히하기 위해 카운터는 이와 같이 설정되지 않습니다. 플레이어 이름은 초기화 정의의 인수가되며 초기화 할 때 카운터는 자동으로 0으로 설정됩니다. 플레이어가 차례로 돌아 오면 카운터는 매번 1 씩 증가합니다. –

+0

당신은'#has_moved? '메쏘드를 원하는 것처럼 들립니다. 그래서 그 방법은 '@ 카운터'를 검사 할 것입니다. 위의 테스트가 효과적입니다. –

+0

좋습니다. 몇 가지 코드를 사용해 보도록하겠습니다. 당신의 도움을 주셔서 감사합니다! –

관련 문제