문제

모의 프레임워크에,예를 들어,EasyMock,쉽게 플러그인이 거짓 종속성입니다.을 말하고,그 사용을 보장하는 방법에 다른 방법이 특정 구성 요소라(그리고 어떤 순서로)는 것 같이 나쁜다.그것은 노출의 행동을 테스트하는 등,그것을 유지하기 위하여 열심히 생산 코드입니다.고 정말 이득을 보지 않;정신적으로 아이들을 즐겁게 해주는 것이었 연결하여 무거운 공입니다.

내가 많이 오히려 좋아하여 그에 대한 테스트 인터페이스를 제공,테스트 데이터 입력으로 주장한 결과입니다.더 나은 아직,을 사용하여 어떤 테스트를 생성하는 도구로 시험 데이터 자동적으로 검증하기 위한 주 제공합니다.예:하나를 추가 요소 목록,그리고 제거하는 즉시 그것과 같은 목록이다.

에서 우리의 작업환경,우리가 사용하는 허드슨을 제공하는 테스트를 커버합니다.불행하게도 그것을 쉽게 얻을 맹목적으로 집착하는 모든 것을 테스트합니다.나는 강하게 느끼는지 모든 것을 테스트하면 하고 싶은 생산성도에 유지 관리 모드에 있습니다.하나의 좋은 예로 들 수 있 컨트롤러 웹 프레임워크.으로 일반적으로 포함해야 한다 매우 작은 논리,테스트와 조롱하는 프레임워크 컨트롤러는 전화 등과 같은 방법은 특히 주문은 무의미에서 솔직한 의견입니다.

친애하는 SOers,무엇인가에 대한 의견을 이?

도움이 되었습니까?

해결책

그것은 방법에 따라 달라집 모델 도메인(s)의 프로그램입니다.

는 경우에 당신은 모델을 도메인의 점에서 데이터 저장에 사용자 인터페이스를 가지고 방법은 데이터를 읽는 데이터 구조 및 저장 파생된 데이터에 다른 데이터 구조(절차나 기능에 따라 어떻게 절차적 또는 기능적인 디자인이다),다음은 모의 개체에 적합하지 않습니다.그래서"이라는 상태 기반의"시험을 당신이 원하는 것입니다.결과를 걱정하는 절차를 둔 오른쪽 데이터를 올바른 변수와 그것이 무엇을 호출하는 일이 그냥 구현한 세부 사항입니다.

는 경우에 당신은 모델을 도메인 측면에서의 메시지 전달한 통신 프로토콜에 의해 개체 공동 작업,그 프로토콜은 당신이 무엇을 관리하고 데이터를 객체 저장을 조정하에서 자신의 행동 프로토콜에는 그 역할은 그냥 구현 세부 사항입니다.이 경우,모의 개체가 올바른 도구를 작업에 대한 기준으로 상태 테스트에 관계 테스트를 너무 긴밀하게 중요하지 않 구현세요.

대부분의 객체-지향 프로그램의 혼합이있다.일부 코드가 기록될 것이 순전히 기능적인 변형,변경할 수 없는 데이터는 구조입니다.다른 코드를 조정하는 행위의 객체를 변경하는 그들의 숨겨진,내부 상태다.

높은 테스트 범위,그것은 정말 당신을 말하지 않는다.저렴한 테스트 범위를 보여줍니다 당신이 어디 있 부적절한 테스트,하지만 높은 테스트 범위를 표시하지 않는 코드를 적절하게 테스트됩니다.테스트 할 수 있습니다,예를 들어,실행 코드를 통해 경로 및 향 적용을 통지만 실제로 어떤 주장에 대해 무엇이 있는 코드로 했습니다.또한 정말로 중요한 것은 어떻게 사용하여 프로그램의 다른 부분이 행동 조합,단위 테스트 범위를 당신에게 말할 것이다.당신이 원하는지 확인하는 테스트를 진짜로 있을 테스트하는 시스템의 행동을 적절히 사용할 수 있는 돌연변이 테스트 도구입니다.그린 프로세스,그것은 무언가를 당신을 실행에 매일 밤을 구축에 보다는 오히려 모든 확인합니다.

다른 팁

내가 읽는 2 개의 질문:

당신의 의견은 무엇입 테스트에는 특별한 방법을 구성 요소에 대해서 특정 주문합니까?

나 떨어 파울이다.우리가 사용하여 더 많은"스텁"은"희롱하는"이러한 일입니다.우리는 하려고 쓰는 단위 테스트는 테스트 중 하나는 것입니다.우리가 이것을 할 때 그것은 정상적으로 작성하는 것이 가능한 매우 간단한 시험는 스텁 out 상호 작용으로 대부분의 다른 구성 요소입니다.고 우리는 아주 드물게 주장하십니다.이렇게 테스트가 적은 과민하게 됩니다.

테스트는 테스트 중 하나는 일은 쉽게 이해하고 유지합니다.

또한 자신을 발견하는 경우,를 작성하는 것을 많이 기대에 대한 상호 작용의 많은 구성 요소를 잘 있을 수 있습 문제 코드에서 당신 테스트 anyway.어려운 경우에는 유 테스트 코드를 테스트할 수 refactor.

해야 중 하나에 집착한 테스트 범위는?

할 때 쓰기에 대한 단위 테스트는 주어진 클래스 I'm pretty 에 집착된 테스트 범위입니다.그것은 정말 쉽게 자리에 중요한 비트의 행동지 않았는지 테스트합니다.수도 판단에 대한 호출하는 비트가 필요하지 않습니다.

전반적인 단위 테스트 범위는 통계가?지 특별히 관심이 있다 그래서 그들이 높습니다.

100%단위 테스트 범위 전체에 대한 시스템입니까?전혀 관심이 없다.

동의함-나에의 호의 기대적으로 상태 확인이기보다는 행동 verification(느슨한 해석 클래식 TDD 을 사용하는 동 테스 배).

의 예약 예술의 유닛 테스트 는 많은 좋은 충고 이러한 영역에서.

100%테스트 범위,GUI 시험,테스트에 필요한 것입/세터 또는 기타-논리드,등등.보이지 않을 제공하는 좋은 수 있습니다.TDD 를 제공할 것이 높은 테스트 범위는 어떤 경우에도 빠지지 않았습니다.테스트할 수 있습니다.

나는 비슷한 질문 얼마나 많은 단위 테스트는 것은 좋은 일, 할 수 있는 데 도움을 주는 아이디어의 다양한 수준의 테스트 사람들이 느낄 수 있다.

  1. 확률은 무엇입하는 동안 당신의 코드의 유지보수 일부 중 직원이 중단 부분의 코드를 실행하는"컨트롤러는 전화 등과 같은 방법은 특히기 위해"?

  2. 비용은 무엇입을 조직하는 경우 이러한 일이 발생-생산에서 중단,디버깅/수정/re-시험/re-자료,금융/법 위험 평판 위험,등등....?

지금,곱#1and#2 여부를 확인 거부감을 달성하는 합리적인 금액의 테스트 범위가 가치가 위험합니다.

때로는 되지 않을 것입니다(이것은 이유에서 테스트가 있는 개념의 포인트 감소하는 반환).

E.g.를 유지하는 경우 웹사용하지 않는 생산 중요한 100 명의 사용자가 있는 해결 방법이면 깨진(및/또는 할 수 있는 쉽고 즉각적인 롤백),그리고 3 개월을 가득 차있는 시험의 범위는 응용 프로그램은 아마도 비을 지배.

에서 작업하는 경우 응용 프로그램을 마이너 버그 수백만 달러나 더 결과(생각하는 시간 소프트웨어 또는 안내 시스템에 대한 미사일 크루즈),그 다음에 대한 철저한 테스트와 함께 완전한 범위가 더 많은 지배.

또한,나는 확실하지 않다면 내가 읽으로 너무 많이 질문 하지만 당신은 것을 암시하는 데 조롱 사용 가능 유닛 테스트를 어떻게든 excluds 응용 프로그램/통합 기능 테스트를 수행하십시오.는 경우,당신은로 이메일을 보내주시기 바랍니다 그런 관념-두 개의 테스트에 접근해야 한다.

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