테스트 단위 개발을 사용하여 개발 된 오픈 소스 응용 프로그램이 있습니까?
C # 및 .NET의 예제를 선호합니다. (라이브러리뿐만 아니라 응용 프로그램에 대해서도 언급했습니다.)
저는 TDD를 믿고 연습하고 싶은 중급 프로그래머입니다. 하루 종일 작업하는 앱은 약 1 백만 줄의 코드로 매우 복잡하며 더 많은 단위 테스트를 소개하고 싶습니다. 우리는 몇 가지 단위 테스트를 실시했지만 TDD와 이미 테스트중인 코드 작업에 대한 나의 노력은 고무적이지 않았습니다.
저의 제한된 경험에서 TDD는 디커플링이라는 이름으로 많은 복잡성을 장려하는 것 같습니다. 테스트하기 어렵고 우연히 중요한 경향이있는 앱의 비트는 주변으로 퍼져 나가거나 작성되지 않을 수도있는 통합 테스트 영역으로 밀려납니다. (여기서는 파일 시스템 액세스, 데이터베이스에서 객체 수화, 비동기 웹 호출 등 일반적인 용의자를 생각하고 있습니다.)
테스트중인 코드는 객체간에 많은 협업과 간단한 흐름 논리를 수반하는 경향이 있습니다. 모두가 메모리에서 발생하고 모든 것이 완전히 분리 될 필요가 없다면 더 간단하고 이해하기 쉬운 방식으로 쓰여질 수 있습니다 시험용.
나는 의존성 등을 조롱하는 기술을 이해하지만, 경험상 조롱을 많이 사용하면 매우 취성 테스트가됩니다. 많은 테스트가 빨간색으로 진행되는 것을 본뜬 첫 번째 본능이 "좋아요, 이제 모든 모의를 고쳐야합니다."
나는이 정신 장벽을 극복하려고 노력하고 있으며 그 일부로 Michael Feathers의 저서 인 레거시 코드로 효과적으로 작업하고 있습니다. 나는 내가 잃어버린 것의 일부를 보여주기를 희망합니다.
또한 코드 범위가 좋은 일부 .NET 응용 프로그램, 콘텐츠 관리 시스템 또는 CRUD 응용 프로그램을 연구하고 싶습니다. Bob 아저씨가 이야기하는 FitNesse 테스트 프레임 워크는 제가 살펴볼만한 내용이지만 가장 익숙한 언어로 작성된 것을 보는 것이 좋습니다.
어떤 제안이나 지혜의 말씀도 감사하겠습니다.