문제

단위 테스트는 대략적으로 테스트 코드와 별도로 코드의 일부를 테스트하는 것입니다.마음속에 떠오르는 즉각적인 이점은 다음과 같습니다.

  • 테스트 실행이 자동화되고 반복 가능해집니다.
  • GUI를 통한 포인트 앤 클릭 테스트보다 훨씬 더 세부적인 수준에서 테스트할 수 있습니다.

리트미스

내 질문은 도구 측면에서 현재 "모범 사례"는 무엇이며 일상적인 코딩의 일부로 단위 테스트를 언제 어디서 사용할 것인지입니다.

어느 정도 언어에 구애받지 않고 모든 기반을 다루도록 노력해 보겠습니다.

도움이 되었습니까?

해결책

좋아, 여기 그가 해야 할 만큼 단위 테스트를 하지 않는 어떤 사람의 몇 가지 모범 사례가 있습니다...기침.

  1. 테스트 테스트를 확인하세요 하나딱 한 가지뿐이에요.
  2. 진행하면서 단위 테스트를 작성하세요.즐겨 ~ 전에 테스트하려는 코드를 작성합니다.
  3. GUI를 단위 테스트하지 마십시오.
  4. 우려사항을 분리하세요.
  5. 테스트의 종속성을 최소화하세요.
  6. 모의 행동 조롱하다.

다른 팁

당신은보고 싶을 수도 있습니다 세 개의 인덱스 카드의 TDD 그리고 테스트 주도 개발의 본질을 쉽게 기억하는 세 가지 인덱스 카드:

카드 #1.밥 삼촌의 세 가지 법칙

  • 실패한 테스트를 통과하는 것 외에는 프로덕션 코드를 작성하지 마십시오.
  • 실패를 입증할 만큼만 테스트를 작성하십시오.
  • 테스트를 통과하기에 충분한 프로덕션 코드만 작성하십시오.

카드 #2:첫 번째 원칙

  • 빠른:초당 수백, 수천만큼 속도가 엄청나게 빠릅니다.
  • 외딴:테스트는 결함을 명확하게 격리합니다.
  • 반복 가능:반복해서 실행할 수 있으며 매번 같은 방식으로 성공하거나 실패합니다.
  • 자체 확인:테스트는 확실히 합격/불합격입니다.
  • 시기 적절한:작은 코드 변경으로 완벽하게 제작되었습니다.

카드 #3:TDD의 핵심

  • 빨간색:테스트 실패
  • 녹색:테스트 통과
  • 리팩터링:깨끗한 코드와 테스트

소위 x단위 프레임워크가 널리 사용됩니다.원래는 Smalltalk용으로 SUnit으로 개발되었으며, Java용 JUnit으로 발전했으며 현재는 .Net용 NUnit과 같은 다른 많은 구현이 있습니다.이는 거의 사실상의 표준입니다. 단위 테스트를 사용한다고 말하면 대다수의 다른 개발자는 xUnit 또는 이와 유사한 것을 의미한다고 가정할 것입니다.

'모범 사례'를 위한 훌륭한 리소스는 Google 테스트 블로그, 예를 들어 최근 게시물 테스트 가능한 코드 작성 환상적인 자원입니다.특히 '화장실 테스트' 시리즈 주간 게시물은 큐브나 화장실 주변에 게시하기에 적합하므로 항상 테스트에 대해 생각할 수 있습니다.

xUnit 계열은 단위 테스트의 중심입니다.이는 Netbeans, Eclipse 및 기타 여러 IDE와 통합되어 있습니다.단위 테스트에 대한 간단하고 구조화된 솔루션을 제공합니다.

테스트를 작성할 때 항상 시도하고 수행하는 한 가지는 외부 코드 사용을 최소화하는 것입니다.내 말은:테스트를 위한 설정 및 해제 코드를 최대한 최소화하고 다른 모듈/코드 블록을 최대한 사용하지 않으려고 노력합니다.잘 작성된 모듈식 코드는 설정 및 해제 시 외부 코드가 너무 많이 필요하지 않아야 합니다.

NUnit은 모든 .NET 언어에 적합한 도구입니다.

단위 테스트는 다양한 방법으로 사용될 수 있습니다.

  1. 테스트 로직
  2. 코드 단위의 분리를 늘립니다.기능이나 코드 섹션을 완전히 테스트할 수 없다면 이를 구성하는 부분이 너무 상호의존적인 것입니다.
  3. 개발을 주도하고 일부 사람들은 테스트를 작성합니다. ~ 전에 테스트할 코드를 작성합니다.이렇게 하면 코드에서 원하는 것이 무엇인지 생각하게 됩니다. 하다, 그리고 언제 그것을 달성했는지에 대한 명확한 지침을 제공합니다.

리팩토링 지원을 잊지 마세요..NET 기반 ReSharper는 누락된 코드에 대한 자동 리팩터링 및 빠른 수정 기능을 제공합니다.즉, 존재하지 않는 항목에 대한 호출을 작성하면 ReSharper가 누락된 부분을 생성할지 묻습니다.

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