2014-11-15 1 views
3

루비의 RSpec/통합 테스팅에 대해 다소 혼란 스럽다.루비의 다른 테스트 키워드는 무엇입니까? 설명 대 vs 테스트

일부 테스트는 키워드 테스트로 시작하고 일부는 설명으로 시작하는 것으로 나타났습니다. 가장 큰 차이점은 무엇입니까? 그것은 모두 RSpec입니까? 예를 들어

test "email should be present" do 
     @user.email = "  " 
     assert_not @user.valid? 
end 

describe 'can set' do 
    it 'calories' do 
    @dessert.calories = 80 
    end 
end 

편집 : MiniTest RSpec에 장단점 대?

답변

4

test ... assert 구문은 일반적으로 Test Unit이라고도하는 MiniTest의 일반적인 구문입니다.

describe ... it은 RSpec의 전형적인 구문입니다. 말했다

, MiniTest은 개인 취향에 따라 구문의 두 가지 종류가 있습니다

  • test ... 고전 구문입니다 assert; Rails가 내부 테스트를 위해 사용하는 것입니다.

  • describe ... it 구문 (MiniTest Spec); 이것은 RSpec 구문의 직접적인 부분 집합과 매우 흡사합니다.

기존 프로젝트에서 작업하는 경우 남은 프로젝트와 동일한 구문을 사용하여 작성하면 팀원이 구문을 쉽게 읽을 수 있습니다.

(귀하의 편집장은 장단점을 묻습니다. 스택 오버플로가 아니라 인터넷 검색에 더 적합한 질문입니다. 이에 대해 많은 의견이 있고 강력한 의견이 많기 때문에 두 가지 모두 훌륭한 선택입니다. 대부분의 프로젝트는 프로젝트가 이미 사용하고, 또는 동료가 최선을 알고 무엇이든 사용하여 큰하겠습니다)

0

test 구문은 루비 표준 라이브러리의 MiniTest (테스트 : 이전 단위의 루비 버전)입니다. describe/it은 Rspec에서 가져온 것입니다.

0

그 이유/방법에 대해 설명합니다 사용을 요청하는 경우 :.

가 테스트 할 수 있기 때문에 유용 설명 반복하지 않고 관련있는 몇 가지. 당신은 칼로리와 맛을 설정할 수 있습니다 사막을 테스트하려는 경우 예를 들어, 당신은 할 수 :처럼

describe 'desserts' do 
    it 'can set calories' do 
    @dessert.calories = 80 
    ...test... 
    end 
    it 'can set taste' do 
    @dessert.taste = 'delicious' 
    ...test... 
    end 
end 

이 실패

, 당신은 메시지를해야합니다 "실패 디저트 칼로리를 설정할 수 있습니다 ..."

을 대신

:

it 'dessert can set calories' do 
    @dessert.calories = 80 
    ...test... 
    end 
    it 'dessert can set taste' do 
    @dessert.taste = 'delicious' 
    ...test... 
    end 

은 덜 읽을 경우 당신은 단어 디저트를 반복하고 있습니다.

관련 문제