2011-05-05 4 views

답변

0

인터페이스를 테스트하면 통합 테스트가 수행되므로 전체 스택을 효과적으로 테스트 할 수 있습니다. UI의 입력은 애플리케이션 로직에 의해 처리되고 UI 응답에 의해 "큰 그림"을 볼 수 있습니다. 즉, 애플리케이션이 예상대로 작동하는 것입니다.

대부분의 경우 UI는 사소한 변경 사항이있는 표준 프레임 워크 제공 클래스로 구성되므로 UI ​​프레임 워크의 기능에 의문이 있거나 직접 개발하지 않는 한 단위 테스트를 실제로 수행 할 필요가 없습니다. UI 클래스

사용자 정의 UI 클래스를 많이 사용하지 않는 경우, 다른 이유로 UI 테스트가 필요하지 않습니다. UI 클래스에는 응용 프로그램 논리가 없어야합니다.

8

요청하지 않으면 주어진 값을 반환하는 mock 객체를 만드는 것처럼 보입니다. 그리고 나서 값 &을 얻으십시오 (놀라움). 나는 조롱하는 프레임 워크 자체를 테스트하지 않거나 컴파일러가 당신에게 더러운 속임수를 쓰기를 기대하지 않는다면 그러한 테스트를 작성하는 것이 타당하지 않을 것이라고 말하고 싶다.

+0

실제로 ... 나는 그것이 의미가 있다고 생각하지 않습니다 ... 감사합니다. – DarkVM

0

인터페이스 모의 객체를 만드는 배경은이 객체를 생성하거나 초기화해야하는 다른 객체 ("테스트중인 객체")를 테스트하는 것입니다. 모의 자체를 테스트하기위한 모의 (모의) 만들기 IMHO는 단위 테스트의 요점을 놓치고있는 것 같습니다.

그러나 인터페이스에 대한 테스트를 작성하는 것이 의미가있는 경우를 생각해 볼 수 있습니다. 테스트 목적으로 만이 아니라 단위 테스트를 작성하는 경우, 사용 방법에 대한 개요가있는 경우 인터페이스에 대한 테스트에서 IInterface을 사용하는 방법을 보여줄 수 있습니다. 물론, 사용법이 그렇게 명확하지 않은보다 복잡한 인터페이스를 사용하는 것이 더 합리적입니다.

3

이것은 the Mockery TDD anti-pattern으로 알려져 있습니다.

그러나 주어진 인터페이스의 모든 구현 자에게 적용되는 테스트 집합을 작성하여 계약이 제대로 구현되었는지 확인할 수 있습니다. 예를 들어, 이것은 Grensesnitt입니다.

0

테스트 인터페이스가 의미가 없습니다. 모의 객체를 테스트하는 것은 모의 객체를 사용하여 추상 클래스의 구현 된 메소드 (C# 정의에서 추상)를 테스트하지 않는 한 이해가되지 않습니다.

관련 문제