'TDD'에 해당되는 글 3건

  1. 2013.05.17 Ruby TDD - Rspec 따라하기 11단계
  2. 2013.05.13 TDD - Running Test
  3. 2013.05.13 TDD - fixture

1. rspec 설치

  sudo gem install rspec


2. user_spec.rb 파일 생성

3. user.rb 파일 생성

  위 사진과 같은 계층도를 가진다.



4. user_spec.rb 파일에 다음 코드를 넣자.


  before :each 블럭은 각 테스트를 시작할 때마다 그전에 실행해야 할 코드를 말한다.

  비슷하게 before :all 블럭은 모든 테스트를 통틀어 시작하기 전에 한번 실행할 코드를 말한다.



5. 루비는 클래스와 메서드를 'ClassName#methodName' 같은 형식으로 나타낸다.


  따라서 위 코드는 User 클래스의 new 메서드를 테스트하는 것이다.

  또 거의 모든 테스트는 인스턴스.should 또는 인스턴스.should_not 메서드를 호출하는 형식이다.


6. user.rb에 다음 코드를 입력하자.


7. 터미널에서 rspec 폴더로 이동한 후 다음을 실행하자.

  > rspec spec

  rspec 명령행은 인자로 파일이나 폴더명을 받는다. 위 예에서는 spec/ 디렉토리를 인자로 받았다.


8. 좀더 발전해 나가보자.

다음은 user.rb 파일이다.


9. 다음은 user_spec.rb 파일이다.

 테스트명을 한글로 사용하려면 맨 위에 '#encoding: UTF-8"을 추가하자. 

 eql은 ==와 같다. 이는 인스턴스의 content가 같다는 의미이다.

  하지만 equal은 인스턴스와 완전 그 자체라는 의미이다.


10.  rspec spec 명령을 실행하자.


11. rspec spec --format nested 명령을 실행하면 더 보기 좋은 형식으로 나온다.





참고자료

1. net tuts+




'Ruby On Rails' 카테고리의 다른 글

rails에서 get method가 보낼 수 있는 파라미터  (0) 2013.05.19
데이터베이스 구조를 sql문으로 복사하기.  (0) 2013.05.18
Ruby TDD - Rspec 따라하기 11단계  (0) 2013.05.17
Ruby On Rails 세팅  (0) 2013.05.15
TDD - Running Test  (0) 2013.05.13
TDD - fixture  (0) 2013.05.13
Posted by 하남각목

Test를 실행해보자.

우선 첫번째 줄에 require 'test_helper'의 의미를 곱씹어보자.

  require 'test_helper'는 test_helper를 만족해야 한다는 건데,

  이 파일 안에는 모든 픽스쳐를 로드하라는 코드가 있다.





자, 그럼 1번줄에 의하여 모든 픽스쳐가 로드된 이후의 상황이다.

4~6번째 줄은 무조건 통과되는 테스트이고,

8~11번째 줄은 music 모델이 title없이 통과되면 실패하는 테스트이다.


  assert BOOL "something to say"

  BOOL이 true이면 테스트 통과. false이면 테스트 실패 & "something to say" 출력



다음과 같이 테스트를 실행할 수 있다.

  ruby -Itest 경로

  경로에는 test_helper.rb 파일이 포함되어야 한다.





참고자료

1. 레일즈 가이드




'Ruby On Rails' 카테고리의 다른 글

Ruby TDD - Rspec 따라하기 11단계  (0) 2013.05.17
Ruby On Rails 세팅  (0) 2013.05.15
TDD - Running Test  (0) 2013.05.13
TDD - fixture  (0) 2013.05.13
HTML <a> 태그와 ERB의 link_to 변환  (0) 2013.05.02
Omniauth - 페이스북 로그인 에러 901  (0) 2013.05.02
Posted by 하남각목

TDD - fixture

Ruby On Rails 2013.05.13 17:53

ROR에서 unit test란 model을 테스트 하는 것이다.

이때 우리는 fixture라는 테스트에 활용되는 샘플 데이터를 활용할 수 있다.


실제로 프로젝트폴더/test/unit/ 폴더에 있는 test 파일을 아무거나 열어보면 다음과 같은 코드를 볼 수 있다.

이는 그 테스트가 실행되기 전에 test_helper가 충족되야 한다는 것을 의미한다.



그럼 더 깊게 알아보기 위해 프로젝트폴더/test/test_helper.rb 파일을 열어보자

그 안에서 다음과 같은 코드를 볼 수 있다.


 위 코드에서 알 수 있듯이 테스트를 하기 전에 모든 fixtures가 load 된다는 것을 알 수 있다.



이번에는 fixture의 구조를 알아보자.  YAML으로 포맷되어 있다.(*.yml)

fixture 이름 밑에 key-value 형식으로 나열된다.



픽스쳐는 자동으로 로드된다.

이는 test_helper.rb 파일에서 자동으로 로드한다.


따라서 test 데이터베이스가 있어야 한다.

  rake db:test:load





참고자료

1. 레일즈 가이드




'Ruby On Rails' 카테고리의 다른 글

Ruby On Rails 세팅  (0) 2013.05.15
TDD - Running Test  (0) 2013.05.13
TDD - fixture  (0) 2013.05.13
HTML <a> 태그와 ERB의 link_to 변환  (0) 2013.05.02
Omniauth - 페이스북 로그인 에러 901  (0) 2013.05.02
Omniauth - 페이스북 로그인 에러 191  (0) 2013.05.02
Posted by 하남각목