2009-05-29 5 views
1

최근에 TDD가 인기있는 버즈 단어 인 토론을 들었습니다. 한 연설자에 따르면, 당신의 행동을 테스트하기 위해서는 MVC를 사용해야하지만 TDD는 어떤 환경에서도 (ASP.NET MVC 나 Web Forms를 둘러싼 논의처럼) 채택 될 수있는 접근법이라고 말 해졌습니다. . 또 다른 연설자는 행동을 라이브러리 나 모델에 넣으면 TDD에서 저장소 나 서비스를 테스트 할 수 있으므로 HTML 테스트에 대해 걱정할 필요가 없다고 주장했습니다. 웹 GUI 테스트의 경우 얼마나 많은 TDD를 다루어야합니까? 아니면 노력할만한 가치가 있습니까?유닛 웹 GUI 테스트

가끔씩 우리는 "차선책"을 사용하여 극단적으로 수행하지만 실제로는 이점이 없습니다. 개발 시나리오. TDD를 UI에 적용 할 수 있습니까?

편집 :

내가 너희들에 동의하고 내가 기분도 : 당신이 정말 TDD를하는 경우에 당신은 당신이있어 데이터 이후, 귀하의 웹 UI 프론트 엔드를 테스트 할 필요가 없습니다 그것을 제공하는 것은 UI없이 테스트 할 수있는 비즈니스/서비스/리포지토리 계층 아래에 ​​있어야합니다. 따라서 Web Forms 응용 프로그램을 조작하여 웹 페이지에서 TDD를 사용할 수 있지만 (예 : 버튼 클릭 이벤트와 같이 서버 측 호출로 작업/동작을 묶어 낮은 수준의 작업을 호출하여 테스트 할 수 있음) . 귀하의 답변을 주셔서 감사합니다

+0

http://stackoverflow.com/questions/362671/does-tdd-apply-well-when-developing-an-ui – JeffH

답변

4

비즈니스 로직 또는 통합 테스트를 수행하기 위해 단위 테스트를해야하는 경우, 설계에 관심사가 완전히 분리되어 있지 않다는 점을 충분히 강조 할 것입니다. MVC와 MVP 모두 관심사를 명확하게 구분하는 패턴이므로 UI는 프레젠테이션 로직에만 집중할 수 있습니다.

ASP.Net MVC 또는 WCSF (웹 양식을 사용하는 MVP implentation) 중 하나를 사용하여 ASP.Net에서 두 옵션을 모두 보유하고 있습니다.

그런데 GUI 테스팅을해야하지만,이 모든 작업을 수동으로 수행 할 필요는 없습니다. Selenium Server, and Selenium Remote Control은 UI를 통해 자동화 된 테스트를 수행 할 수있는 방법을 제공합니다.

1

여기 조쉬와 동의합니다. 그래서 계속 그렇게하고있어, 투표를 할 수는 없다.

우선 GUI 테스트는 단위 테스트가 아니라는 점에 유의해야합니다. 조쉬 (Josh)가 주장한 바와 같이, GUI에는 비즈니스 로직이 포함되어 있지 않다.

테스트가 필요한 논리는 하나 이상의 개별 라이브러리 (또는 단순한 MVC 컨트롤러)로 캡슐화됩니다.

TDD는 논리적 코드 단위 만 참조하며, 견고한 TDD 연습의 특징 중 하나는 UI없이 모든 논리 코드를 작성하고 테스트 할 수 있다는 것입니다. 사실, 테스트는 종종 테스트 할 수업 전에 작성됩니다. 코드가 완료되고 모든 테스트가 통과되면 사용자 인터페이스를 추가하여 빌드 한 API 후크를 활용할 수 있습니다.이 UI는 웹 폼, MVC, WPF, winforms 등이 될 수 있습니다.

' 셀레늄과 같은 제품은 수락 테스트 또는 통합 테스트와 관련이 있습니다.

+0

과 매우 유사합니다. Jay :) 전반적인 응답에 추가 된 명확성을 주셔서 감사합니다. – Josh