should_receive(:확인할 메소드명).with(넘겨질 파라미터 값).and_return({반환되어야하는 값})
: Ruby Rspec에서 테스트 코드에서 검증하고자 하는 클래스에서 *** 메소드가 실행되고 있는지 확인하는 기능을 지원한다.
예시
it "calls Zoogle.graveyard_locator" do
Zoogle.should_receive(:graveyard_locator).with(zombie.graveyard).and_return({latitude: 2, longitude: 3})
zombie.geolocate
end
옵션주기
should_receive(:function)에는 옵션을 줄 수 있다.
should_receive(:function).once : 한번 호출되었다.
should_receive(:function).at_least : 적어도 두번은 호출 되었다.
should_receive(:function).with(/jimin/) : with에 넘어갈 파라미터 값에 정규표현식을 반영할 수있다.
should_receive(:function).with(3, kind_of(Numeric)) : 파라미터로 넘어오는 객체가 *** 클래스를 상속받았는지 체크할 수 있다.
tobe.. 아래의 페이지 보면서 stub / mock 의 차이 정리하기
http://www.agileventures.org/articles/testing-with-rspec-stubs-mocks-factories-what-to-choose
#codeschool Rspec
'소프트웨어-이야기 > 테스트-자동화' 카테고리의 다른 글
(Django) Rspec VS PyTest (0) | 2018.06.15 |
---|---|
(Django) 마이그레이트를 하지 않고 PyTest 사용하기 (2) | 2018.06.15 |
(테스트환경)로컬에 REDIS 환경 만들기 (0) | 2017.07.23 |
[rails]테스트코드 - Rspec (0) | 2017.04.22 |
[Rspec]:all VS :each 차이 (0) | 2016.06.10 |