문제

많은 사람들이 사용하는 모의 개체할 때 쓰는 단위 테스트를 확인할 수 있습니다은 무엇인 모의 객체?내가 왜 필요한가?가 필요한 모의 개체 Framework?

도움이 되었습니까?

해결책

체 조롱을 유지하는 데 사용됩 종속성의 단위 테스트입니다.때때로 당신은 테스트를해야합니다 다음과 같"SelectPerson"는 것이 사람을 선택하는 데이터베이스에서 반환하는 사람은 개체입니다.

이렇게하려면,당신은 일반적으로 필요한 종속성 데이터베이스에서,그러나 그 개체와 함께 희롱하는 시뮬레이션할 수 있습 데이터베이스와의 상호 작용으로 모의 프레임워크,그래서 그것을 반환할 수도 있습니다 데이터 집합처럼 보이는 하나의 데이터베이스에서 반환되고할 수 있습니다 다음 코드를 테스트하도록 처리하는 번역하는 데이터세트를 사람보다 그것을 사용하여 테스트하는 데이터베이스에 접속이 존재합니다.

다른 팁

여러 사람들이 이미 대답이'무엇',하지만 여기에 몇 가지의 빠른 이유들'나는 생각할 수 있습니다:

  1. 성능

    기 때문에 단위 테스트해야 빠른 테스트,구성 요소입 과 상호 작용하는 네트워크,데이터베이스,또는 다른 시간 집약적 자원이 필요하지 않습을 벌금을 지불하는 경우에 그것을 사용하여 수행 모의 체입니다.저축을 추가한 지점에 위치하고 있습니다.

  2. 공동 작업

    서면 당신은 멋지게 캡슐화 된 조각의 해야 하는 코드는 상호 작용하는 다른 사람과의 코드(없 아직 작성되거나 개발에서 병렬 일반 시나리오),운동할 수 있는 코드와 모의 개체되면 인터페이스는 합의.그렇지 않으면 당신의 코드를 시작되지 않을 수도 있습을 테스트될 때까지 다른 구성 요소가 완성된다.

모의 객체를 테스트할 수 있습니다에 대하여 그냥 당신이 무엇을 쓰고 추상적인 정보에 액세스하는 등 자원(디스크,네트워크 서비스,etc.).모의 다음할 수 있습 척하는 외부 리소스,또는 클래스 또는 어떤 것이다.

당신이 정말로 필요로하지 않는 모의 개체 프레임워크,그냥 확장 클래스의 기능을 원하지 않는 걱정에서 테스트하고 확인하는 등 당신은 테스트를 사용할 수 있는 모의 실제 물건을 대신(패스에서 그것을 통해 생성자 또는 세터 또는 무언가이다.

연습을 표시할 때 조롱하는 경우 그들은하지 않습니다.

편집:조롱하는 리소스에 특히 중요 그래서 당신은 의존하지 않아도 그들에 존재하는 테스트 중,그리고 당신이 할 수 있는 모의의 세부 사항을 어떻게 그들이 존재와 그들이 반응(같은 시뮬레이션 FileNotFoundException 거나,웹 서비스가 없는,또는 다양한 가능한 값을 반환의 webservice)...없이 모든 느리게 액세스 시간이 참여(희롱하는 것을 증명보다 훨씬 빠르게 액세스하에서 이러한 리소스 테스트).

가 필요한 모의 개체 Framework?

확실하지 않습니다.때때로,쓰기를 조롱에 의해 손으로 매우 지루한 될 수 있습니다.하지만 간단한 것,그것이 나쁘지 않습니다.는 원칙을 적용하의 마지막 책임 순간 를 조롱하는 프레임워크를,당신은 단지 전환 손으로 쓴 조롱하는 프레임워크 때을 입증하여 자신 손으로 쓰기를 조롱하는 더 많은 문제가보다는 가치가 있습니다.

당신이 얻을 시작으로 조롱 점프,바로 프레임워크를 두 배 이상 당신의 학습 곡선(수 있습니다 당신이 두 곡선?).조롱하는 프레임워크를 만들 것입니다 더 의미가 있을 때 당신이 몇 프로젝트를 쓰고 조롱 있습니다.

체를 조롱하는 방법을 만드는"가"또는 조롱하며 물체 인터페이스에서,추상 클래스 또는 등을 가진 가상의 방법이 있습니다.그것은 당신이 일종의 포장에 이들 중 하나의 자신의 정의 테스트를 위한 목적입니다.그것은 유용한 개체에 의지를 위한 특정 코드를 차단하는 테스트입니다.

인기있는 중 하나는 다음과 같이 사용하라 Moq, 지만,많은 다른 사람처럼 RhinoMock 고 수많은 사람에 대해 알지 못.

그것은 당신 테스트 방법 중 하나 프로젝트의 일부와 상호 작용하지 않고,나머지는 건물 전체의 것과 잠재적으로 누락된 중요한 부분입니다.

편집:좋은 예를 들어서:그것은 당신을 테스트하는 코드를 미리처럼,자동차 디자이너를 사용하여 충돌을 테스트 더미 테스트의 행동을 하는 동안 자동차 사고가 아니다.

다른 사용은 그것은 당신 테스트에 대해 다른 부분의 시스템는 아직 구축 되지 않습니다.예를 들어,당신의 클래스에 따라 달라집 다른 클래스의 일부 기능은 다른 사람은 작업에서,당신은 단지 요청하는 대부분 완전한 인터페이스,프로그램의 인터페이스하고 다만 모의 정보로 당신은 그들을 기대하는 작업이다.다음 확인,당신의 가정에 대한 인터페이스를 정확하(중 하나는 동안 당신의 개발,또 한번 기능이 완료).

는지 여부를 당신에게 조롱하는 프레임워크는용에 대한 부분에 따라 달라집의 언어 코드니다.정체되어야 합니에 넣어 추가적인 노력을 속이기 위해 컴파일러로 받아들의 조롱으로 대체한다.에서 동적으로 입력되는 언어와 같은 Python,Ruby 나 자바스크립트,할 수 있는 일반적으로 붙이는 방법에 임의의 개체하거나 클래스고 전달하는 매개변수로-그래서 프레임워크를 추가하는 것이 훨씬 더 적은 값.

2 권장 조롱하는 프레임워크에 대한.net 단위 테스트 Typemock 아이솔레이터와 코뿔소는 Mock.

다음 링크에서 확인할 수 있습 설명서 Typemock 으로 필요한 이유 롱 framework 에 대한 단위 테스트입니다.

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