문제

그래서 단위 테스트가 필수라는 것을 알고 있습니다.새로운 모듈을 추가할 때 TDD가 좋은 방법이라는 생각이 들었습니다.실제로는 그렇게 하지 않더라도 말이다.실제로 코드에 주석을 다는 것과 비슷합니다.

실제로 저는 UI와 더 일반적으로 이벤트를 생성하는 개체를 단위 테스트하는 방법을 파악하기 위해 애쓰고 있습니다.사용자 컨트롤, 비동기 데이터베이스 작업 등

내 코드 중 상당수가 UI 이벤트와 관련되어 있어 단위 테스트를 시작하는 방법조차 알 수 없습니다.

거기에 몇 가지 입문서와 시작 문서가 있어야 합니까?힌트와 팁이 있나요?

저는 일반적으로 C#(2.0 및 3.5)에서 작업하고 있지만 이것이 질문과 정확히 관련이 있는지 잘 모르겠습니다.

도움이 되었습니까?

해결책

기억해야 할 것은 단위 테스트는 작성한 코드 단위를 테스트하는 것입니다.단위 테스트에서는 버튼을 클릭하면 이벤트가 발생하지만 해당 클릭 이벤트에 의해 실행되는 코드가 예상대로 작동하는지 테스트해서는 안 됩니다.

당신이 정말로 원하는 것은 UI 레이어가 자신있게 해당 코드를 실행할 수 있도록 기본 코드가 해야 할 일을 테스트하는 것입니다.

다른 팁

이것을 읽어보세요 UI 테스트에 어려움을 겪고 있다면

자동화 시 비용 이점이 최소화되는 UI 항목을 수동으로 테스트합니다.UI 스킨 아래의 모든 것을 무자비하게 테스트하세요.Humble Dialog, MVC 또는 변형을 사용하여 로직과 UI를 구별되고 느슨하게 결합되도록 유지하세요.

로직과 프리젠테이션을 분리해야 합니다.MVP(Model-View-Presenter)/MVC(Model-View-Controller) 패턴을 사용하면 UI 이벤트에 의존하지 않고 로직을 단위 테스트할 수 있습니다.또한 당신은 사용할 수 있습니다 화이트 프레임워크 사용자 입력을 시뮬레이션합니다.Microsoft 웹사이트를 방문해 보시기를 적극 권장합니다. Patterns&Practices 개발자 센터, 특히 복합 응용 블록과 Prism을 살펴보십시오. 테스트 중심 설계에 대한 많은 정보를 얻을 수 있습니다.

외부 세계와 통신하는 애플리케이션 부분(예: UI, 데이터베이스 등)은 단위 테스트 시 항상 문제가 됩니다.이를 해결하는 방법은 실제로 해당 레이어를 테스트하는 것이 아니라 가능한 한 얇게 만드는 것입니다.UI의 경우 테스트할 가치가 없는 간단한 대화 상자나 뷰를 사용한 다음 모든 논리를 컨트롤러나 프리젠터 클래스에 넣을 수 있습니다.그런 다음 모의 프레임워크를 사용하거나 자신만의 모의 객체를 작성하여 뷰의 가짜 버전을 만들어 프리젠터나 컨트롤러의 논리를 테스트할 수 있습니다.데이터베이스 측에서도 비슷한 작업을 수행할 수 있습니다.

테스트 이벤트는 불가능하지 않습니다.예를 들어 이벤트가 발생하는 경우 예외를 발생시키는 이벤트에 대한 익명 메서드를 구독하거나 이벤트가 발생하는 횟수를 계산할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top