조직에 대한 지침을 모으는 데 도움이되는 단위 테스트 모범 사례를 조사 할 때 테스트 픽스처 (테스트 클래스)를 분리하거나 단일 클래스에 대한 모든 테스트를 하나의 파일로 유지하는 것이 더 나은지 또는 유용한 지에 대한 질문을했습니다.
Fwiw, 나는 단일 단위, 테스트 당 하나의 주장, 모의 모든 의존성 등을 대상으로하는 화이트 박스 테스트라는 순수한 의미에서 "단위 테스트"를 언급하고 있습니다.
예제 시나리오는 CheckIn 및 CheckOut의 두 가지 메소드가있는 클래스 (문서라고 함)입니다. 각 방법은 동작을 제어하는 다양한 규칙 등을 구현합니다. 테스트 당 하나의 어설 션 규칙에 따라 각 방법에 대해 여러 테스트를 수행합니다. DocumentTests
이름이 CheckInShouldThrowExceptionWhenUserIsUnauthorized
and 인 단일 클래스 에 모든 테스트를 배치 할 수 있습니다 CheckOutShouldThrowExceptionWhenUserIsUnauthorized
.
또는, 나는 두 개의 별도의 테스트 클래스를 가질 수있다 : CheckInShould
와 CheckOutShould
. 이 경우 테스트 이름이 짧아 지지만 특정 동작 (방법)에 대한 모든 테스트가 함께 구성되도록 테스트 이름이 구성됩니다.
나는 접근 할 수있는 찬반 양론이 있다고 확신하고 누군가가 여러 파일로 경로를 갔는지 궁금하다면 왜 그렇습니까? 또는 단일 파일 접근 방식을 선택한 경우 왜 더 나은 느낌이 들까 요?
testResponseContainsSuccessTrue()
, testResponseContainsMyData()
하고 testResponseStatusCodeIsOk()
. 당신은 하나에서 그들을 것 testResponse()
세 가지가 주장했습니다 assertEquals(200, response.status)
, assertEquals({"data": "mydata"}, response.data)
그리고assertEquals(true, response.success)