2009-11-19 4 views
2

이것은 지금 당분간 저를 괴롭 히고 있습니다. 모든 유효성 검사를 서비스 계층에 넣었습니다. 그러나 내가 단위 테스트를 할 때 나는 보통 모든 것을 행동 방식으로 통과시킨다. 그런 다음 유효성 검사가 포함 된 서비스 레이어로 이동합니다.단위 테스트에서 단위 테스트를해야합니까?

그래서 이것이 최선의 방법인지 확실하지 않습니다. 보통 그들은 그 방법을 테스트해야한다고 말한다.

그럼 너희들은 어떻게 생각하니?

답변

3

작업 요청을 통해 모든 것을 전달하는 경우 통합 테스트를 수행하는 것처럼 들립니다.

(유닛) 테스트를 수행하는 경우 유닛을 테스트해야합니다. 이 경우 작업 요청에 대한 서비스 계층에 필요한 모든 데이터를 전달합니다 (시뮬레이션).

서비스 계층으로 전달 된 개체를 조롱하고 전달한 다음 실제로 반환 된 것과 기대되는 결과를 가정해야합니다. 그것은 (프로세스) 작동하는지 증명하기 때문에

그냥 추가로

편집, 그것은, 엔드 - 투 - 엔드, 또는 통합을 가지고 테스트 좋아요.

그러나 단원 테스트는 개별 구성 요소를 테스트하고 종단 간 테스트가 할 수있는 것보다 빨리 결함이 없으므로 수행해야합니다.

+0

그런 다음보기를 테스트하지 않아야합니까? 내가 가지고있는 것과 마찬가지로 기본적으로 if 문에서 Create()와 같은 호출 방법을 사용하면 유효성 검사를 수행하고 무언가를 작성한 다음 true를 반환합니다. 그럼 난 그냥 뭔가를 반환합니다. 그렇다면 그 견해에서 무엇인가 테스트 할 것이 있습니까? 마치 내가 그것을 테스트하지 않을 것이기 때문에 그 Create Method를 모형으로 만들 것이라고 가정하고있다. 그래서 정말로 진실을 되돌려주는 if 문 하나입니다. – chobo2

+0

이 경우에는 뷰를 테스트하는 데 신경 쓰지 않을 것입니다. TDD는 응용 프로그램에 가장 적합하도록 직접 설계해야하는 것입니다. 모든 애플리케이션에 대한 공식은 없습니다. 테스트를 작성할 때 필요한 것을 결정하여 언제든지 실행할 수 있어야하며 응용 프로그램의 다른 곳에서 코드가 변경되어 발생하는 문제를 식별 할 수 있어야합니다. www.dnrtv.com은 Venkat의 훌륭한 TDD 쇼입니다. 나는 그것을보기를 강력히 권한다. – griegs

1

내가 당신 인 경우, 동작 방법 대신 개별적으로 유효성 검사가 포함 된 서비스 계층을 테스트 할 것입니다.

이 이유는 테스트 코드를 "한 번에 하나씩 테스트"로 유지하기 위해서입니다. 모델과 뷰의 상호 작용을 테스트하는 컨트롤러를 테스트 해봤는데, 다른 것은 아니었다. 특히 서비스 계층 및 유효성 검사를위한 테스트를하고 싶습니다.

단위 테스트를 수행 할 때 mocks은 필연적입니다.

+0

+1. 네, 그렇습니다. 통합 테스트를위한 사례가 있습니다. 그러나 그 전에는 단위 테스트를해야한다고 생각합니다. 그런 식으로 어디서나 변경을하면 통합 테스트보다 빨리 선택됩니다. – griegs

관련 문제