Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

테스트 없음에서 TDD로 앱을 가져오는 방법은 무엇입니까?

당신은 당신이 만든 앱에 대해 흥분합니다. 단 하나의 문제가 있습니다. 테스트가 없습니다. 테스트 주도 개발을 사용하여 작성하고 싶었지만 어디서부터 시작해야 할지 잘 몰랐습니다. 그래서 당신은 붙어 있습니다. 여기에서 어디로 가나요? 테스트가 없는 앱에서 어떻게 TDD를 사용하여 앱을 작성합니까?

이미 가지고 있는 코드 테스트

테스트가 없는 많은 코드가 있습니다. 하지만 이것이 지금 테스트를 작성할 수 없다는 의미는 아닙니다. , 기존 코드에 대해. 따라서 이미 가지고 있는 코드 테스트를 시작하여 코드가 예상대로 작동하는지 확인하십시오.

TDD가 아닙니다. 그러나 기존 코드를 테스트하면 배우는 데 도움이 됩니다. TDD :

  • 최소한의 경우와 오류 조건에 대해 생각하는 연습을 합니다.

    가능한 모든 단일 입력을 테스트하는 데 몇 년을 소비하지 않고 테스트를 작성하려면 코드가 가장 손상될 가능성이 있는 위치를 생각해야 합니다. 테스트 중인 메서드가 문자열을 사용하는 경우 기호를 전달하면 어떻게 될까요? nil을 전달하면 어떻게 되나요? ? 숫자를 나누는 함수를 테스트하는 경우 0으로 테스트하는 것이 좋습니다. 하지만 1 으로 테스트할 필요는 없을 것입니다. 2.

    충분한 테스트를 작성한 후에는 메소드가 중단될 가능성이 가장 높은 위치를 예측하기 시작할 것입니다. 그리고 TDDing을 시작하면 이 기술을 사용하여 코드가 극단적인 경우를 더 잘 처리하도록 하는 강력한 테스트를 작성할 수 있습니다.

  • 잘 구조화된 테스트 작성을 연습합니다.

    나중에 테스트를 작성할 때 이러한 테스트를 구조화하기 위해 다른 패턴을 시도할 수 있습니다. 테스트 중인 코드가 이미 있으므로 테스트와 작성 방법에 집중할 수 있습니다. 그리고 일단 좋은 패턴을 배우면 하지 않을 때 더 나은 테스트를 작성할 수 있습니다. 기댈 수 있는 코드가 있습니다.

  • 코드를 테스트하기 어렵게 만드는 요소를 발견했습니다.

    더 많은 테스트를 작성함에 따라 시스템의 어떤 영역이 테스트하기 가장 어려울지 감지하기 시작할 것입니다. 이러한 영역을 발견하면 리팩토링이 필요한 위치로 강조 표시할 수 있습니다. 더 좋은 점은 처음부터 더 테스트 가능한 코드를 작성하기 시작한다는 것입니다.

    테스트하기 쉬운 코드가 무엇인지 알게 되면 해당 지식으로 테스트하기 쉬운 API를 TDD할 수 있습니다. 그러면 앱을 더 빨리 빌드하는 데 도움이 됩니다.

간편한 TDD 사용

사후 테스트를 사용하여 배우는 기술을 구축할 수 있습니다. TDD. 그러나 여전히 앱의 일부를 결국 TDD하고 싶습니다. 또한 기존 코드에 의존하면서 TDD를 쉽게 사용할 수 있는 간단한 방법이 있습니다. 바로 회귀 테스트를 작성하는 것입니다.

회귀 테스트는 이미 수정한 코드를 깨뜨리는 것을 방지합니다. 아이디어는 매우 간단합니다. 버그에 대해 들을 때마다 브라우저를 클릭하여 재현하는 대신:

  • 실패한 테스트 작성 버그를 재현합니다.
  • 테스트 실행 , 실패하는지 확인하세요(버그가 여전히 존재하기 때문에).
  • 버그 수정 가장 간단한 방법으로.
  • 테스트 실행 , 통과해야 합니다.
  • 리팩터 필요한 경우 수정합니다.

이것은 새로운 시스템을 처음부터 TDD하는 것보다 훨씬 쉽습니다. 이미 있는 코드에 대한 변경 사항을 테스트 구동하기 때문입니다. TDD의 필수 루프인 "Red, Green, Refactor"의 습관을 만듭니다. 여기에서 TDD는 테스트 없이 바로 TDD로 이동하는 것보다 짧은 단계입니다.

무에서 TDD로

테스트가 없는 앱은 시작하기에 나쁘지 않습니다. 기존 코드를 테스트할 때 좋은 TDD 테스트를 작성하는 데 필요한 많은 것을 배우게 됩니다. 테스트 후는 처음에는 TDD보다 쉽습니다. 아직 디자인할 방법을 모르는 API를 상상할 필요가 없기 때문입니다. 그리고 TDD를 앱에 도입하기로 결정했다면 회귀 테스트를 통해 쉽게 도입할 수 있습니다.

따라서 상상하고 있는 시스템을 TDD하는 방법을 모른다면 계속 테스트를 작성하십시오. 코드를 먼저 작성해야 하는 경우에도.