소프트웨어-이야기/테스트-자동화 썸네일형 리스트형 [rails]테스트코드 - Rspec rspec gemgem 'rspec-rails'api document - http://rspec.info/documentation/3.5/rspec-rails/ 같이 사용하면 좋은 gemfactory_grilactive record의 mock data를 만들 때 편하다. 테스트 코드를 돌릴 때, test db에 가상의 목데이터를 만들어주고, 테스트코드가 모두 돌아가고 나면 자동으로 rollback을 해준다.gem 'factory_girl'https://github.com/thoughtbot/factory_girl 스터디하기 좋은 동영상 강의code school - rspec https://www.codeschool.com/courses/testing-with-rspec예전에 회사에서 스터디로 했었는데, .. [Rspec]:all VS :each 차이 before(:all) VS before(:each) before(:all)을 하면 모든 알스펙이 돌기 전에 한번만 블럭을 실행하는 거고, before(:each)는 각각 알스펙이 돌 때 한번씩 여러번 실행되는 걸 의미한다.아래와 같은 케이스일 때 before(:all)을 사용하면 좋았다.카우치베이스 테스트코드를 작성할 때 캐시에 값이 남아있어서 테스트코드가 마구 깨지는 케이스가 있었다. 그래서 각 테스트코드가 돌기전에 캐시들을 flush 해주는 함수를 넣어서, 캐시들을 다 날려버려줬었다. 그런데 flush는 응답속도가 느려서 테스트코드를 돌리는 데에 시간이 많이 걸렸다. 그래서 eache(:all) 블럭 안에 캐시를 flush하는 기능을 넣어서 테스트 코드를 돌릴 때 한번만 캐시를 날리도록 고쳤더니 조.. [Rspec]테스트 할 코드에 원하는 메소드가 실행되고 있는지 확인하기 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_.. 이전 1 2 3 다음