2014-10-17 14 views
0

, 우리는 TDD를 사용하는, 그래서 우리는 다음과 같이 몇 가지 검사가 있습니다"TDD"에서 어떤 종류의 테스트입니까? 우리의 개발에

"User" should { 
    "return 'Mike' if its name is 'Mike'" in { 
     val user = User("Mike") 
     user.getName === "Mike" 
    } 
    "return 20 if its age is 20" in { 
    val user = User(age = Some(20)) 
    user.getAge === Some(20) 
    } 
} 

테스트 우리가 여기에 쓰기 "단위 테스트"처럼 보이는됩니다. "나는 TDD와 그것을 시도 할

def is = s2""" 
    User can have name and age, and we have ways to get them, say, if we have a user whose name is "Mike" and the age is "20", 
    - we can the name "Mike" [$e1] 
    - also can get the age 20 [$e2] 
""" 
def e1 = { 
    val user = User("Mike") 
    user.getName === "Mike" 
} 
def e2 = { 
    val user = User(age = Some(20)) 
    user.getAge === Some(20) 
} 

, 곧 나는 시험의 종류는 발견

은 그 때 나는 specs2가에 내가 관심이 더 표현할 수있는 구문이 다른 종류의를 제공 발견 수락 명세 ". 내 생각에 강한 의문이 들었습니다.

"TDD"를 언급하면 ​​어떤 종류의 테스트입니까? 그들은 "단위 테스트"가되어야합니까? 구현을 추진하기 위해 "수락 사양"을 사용하는 것이 좋습니다.

+0

태그를 추가 할 때 "atdd"가 있음을 알았습니다. 찾고있는 것 같습니다 – Freewind

답변

1

스펙 2에서 "수용"및 "단위"라는 용어는 활동보다는 "스타일"에 대해 더 자세히 설명하고 싶습니다.

"수락 사양"은 개발자가 쉽게 읽을 수 있어야하는 "수락"문서에 공통적 인 스타일로 표현할 수 있기 때문에 "수락 사양"을 그대로 사용했습니다 (즉, 너무 많이 어수선하게 흩어지지 않아야 함). 암호).

한편 "단위 규격"은 단위 테스트를 작성하는 사람들에게 더 익숙한 스타일로 표현됩니다.

그러나 나는이 교파가 전혀 규범 적이라고 생각하지 않습니다. 원하는 스타일을 자유롭게 선택할 수 있으며 자주 단위 테스트를 위해 "수락"스타일을 사용합니다!

1

TDD는 "단위 테스트"에 대한 특정 정의와 다른 종류의 테스트를 엄격하게 요구한다고 생각하지 않습니다. 특정 종류의 테스트는 구현 세부 사항입니다. TDD가 중점을 두는 것은 개발 노력에 빠른 피드백을 제공하기 위해 테스트의 반복 가능성입니다. TDD는 그들이 어떤 종류의 테스트인지를 반드시 신경 쓰지는 않습니다. 단지 시스템 개발을 추진하기 위해 그러한 테스트를 사용하는 것에 관심이 있습니다.

이렇게하기 위해 신속하고 반복적으로 (빨강/녹색/리팩터링주기의 일부로) 실행할 수있는 모든 테스트는 개발을 TDD 스타일로 유도 할 수 있습니다.

수동 QA 부서가 외부 관찰자에게 수 시간의 수작업 테스트를 거쳐 수 시간 동안 실행될 수있는 시간 필드에 포함 된 대체 세계를 상상할 수 있다면, 수동 테스트 외부 관찰자에게 TDD 테스트로 사용할 수 있습니다. (코드 커버리지를 측정하는 것이 어려울지라도 ...)

신속하게 실행할 수있는 모든 반복적 인 테스트 세트를 TDD에 사용할 수 있습니다.

+0

훌륭한 답변과 예를 들어 주셔서 감사합니다 :) – Freewind

1

TDD는 테스트의 종류에 대해 규정하지 않습니다. 회귀 하네스로 지정/탐색하고 사용하는 테스트를 작성합니다. 따라서 작업 단위를 지정해야하는 경우 단위 테스트를 작성할 수 있습니다. 전체 시스템을 지정해야하는 경우 단위 테스트라고 부르지 않는 시스템 외부 테스트를 작성하게됩니다.

"단위"라는 용어는 실제로 사용자의 관점에 의존한다는 점에 유의하십시오. 많은 코드가 실행 되더라도 기능 단위를 설명하는 테스트를 단위 테스트로 고려할 수 있습니다.