문제

나는 단위 테스트 경험이 거의 없다는 것을 인정합니다. 나는 얼마 전에 Dunit과 함께 시도했지만 응용 프로그램의 수업 사이에 많은 의존성이 있었기 때문에 포기했습니다. 다소 큰 (약 150 만 소스 라인) Delphi 응용 프로그램이며 우리는이를 유지하는 팀입니다.

현재 테스트는 릴리스 및보고 버그를보고하기 전에 사용하는 한 사람이 수행합니다. 또한 TestComplete 6에서 GUI 테스트를 설정했지만 응용 프로그램의 변경으로 인해 종종 실패합니다.

Delphi 용 Bold는 데이터베이스에 대한 영구 프레임 워크로 사용됩니다. 우리는 모두 UnitTesting이 갈 길이라는 것에 동의하며 ECO를 사용하여 DOTNET에 영구 프레임 워크로 새로운 응용 프로그램을 작성할 계획입니다.

유니 테스트로 어디서 시작 해야할지 모르겠습니다 ... 좋은 책, URL, 모범 사례 등이 있습니까?

도움이 되었습니까?

해결책

글쎄, 단위 테스트의 도전은 테스트 자체가 아니라 테스트 가능한 코드 작성. 코드가 작성된 경우 ~ 아니다 테스트에 대해 생각하면 아마 정말 어려울 것입니다.

어쨌든, 당신이 리팩터를 리팩터 할 수 있다면, 리팩터를 사용하여 테스트 가능하게하십시오. 가능할 때마다 물체 생성을 논리와 혼합하지 마십시오 (델파이를 모르지만 이에 도움이되는 종속성 주입 프레임 워크가있을 수 있습니다).

이 블로그 테스트에 대한 좋은 통찰력이 많이 있습니다. 확인하다 이 기사 예를 들어 (나의 첫 번째 제안은 그것에 근거한 것입니다).

제안에 관해서는 코드의 잎 노드를 먼저 테스트하십시오. 모의가 필요하지 않기 때문에 테스트하기가 더 쉽습니다.

다른 팁

레거시 코드에 대한 단위 테스트 작성에는 일반적으로 많은 리팩토링이 필요합니다. 이것을 다루는 훌륭한 책은 마이클 페더의 것입니다.레거시 코드로 효과적으로 작동합니다"

한 가지 추가 제안 : 단위 테스트 커버리지 도구를 사용 하여이 작업의 진행 상황을 나타냅니다. 델파이 코드의 좋은 커버리지 도구가 무엇인지 잘 모르겠습니다. 나는 이것이 다른 질문/주제라고 생각합니다.

레거시 코드로 효과적으로 작동합니다

가장 인기있는 접근법 중 하나는 코드를 수정할 때 단위 테스트를 작성하는 것입니다. 모든 새 코드는 단위 테스트를 받고, 모든 코드의 경우 먼저 테스트를 작성하고 확인하고 수정하고 다시 검토 한 다음 수정으로 인해 필요한 테스트를 작성/수정합니다.

좋은 단위 테스트 범위를 갖는 큰 장점 중 하나는 당신이하는 변화가 우연히 다른 것을 깨뜨리지 않는지 확인할 수 있다는 것입니다. 이 접근법을 사용하면 즉각적인 요구에 집중하면서 그렇게 할 수 있습니다.

내가 사용한 대체 접근법은 협동 조합을 통해 내 단위 테스트를 개발하는 것입니다 :)

레거시 코드로 작업 할 때 모의 OBJETC는 단위 테스트를 구축하는 데 정말 유용합니다.

델파이와 모의에 관한이 질문을 살펴보십시오. 가장 좋아하는 Delphi Mocking Library는 무엇입니까?

.NET UnitTesting의 경우 다음을 읽으십시오. "단위 테스트의 기술 : .NET의 예제와 함께"

최고의 프레이트에 대해 :
당신이 말한 것은 옳습니다. 때로는 수업 간의 종속성으로 인해 단위 테스트를 작성하기가 어렵습니다. 따라서 바로 직전이나 직전에 단위 테스트를 작성하십시오 ;-) 클래스 구현. 이와 같이, 테스트를 작성하는 데 어려움이 있다면 디자인 문제가 있음을 의미 할 수 있습니다!

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