2009-06-26 4 views
5

단위 테스트를 추가하고 싶지만 정확하게 이동하는 방법을 잘 모르는 기존 asp.net webforms 응용 프로그램이 있습니다.단위 테스트를 기존 asp.net 웹 양식 응용 프로그램에 추가

응용 프로그램은 고급 포럼과 비교할 수있는 기능을 갖춘 데이터베이스 기반 응용 프로그램입니다. 로직, 데이터 액세스 및 프리젠 테이션은 대부분 분리되어 있습니다.

어떤 방법으로 테스트해야합니까?

데이터베이스 및 테스트 데이터를 어떻게 처리합니까?

도움이 될만한 도구가 있습니까?

답변

5

우선 결정해야 할 사항은 다음과 같습니다. 단위 테스트를 추가하려는 동기는 무엇입니까?

단위 테스트를하는 데는 여러 가지 훌륭한 이유가 있습니다. (나는 엄격하게 TDD를 직접 연습합니다.) 어떤 경우가 귀하의 경우에 가장 큰 원동력인지 아는 것이 어떤 테스트를 처음 작성할지 결정하는 데 도움이됩니다.

대부분의 경우 과거에 가장 많이 고통 받고있는 응용 프로그램 영역에 대한 단위 테스트를 작성하는 데 집중해야합니다.

소프트웨어가 원래 단위 테스트없이 작성된 경우 단위 테스트를 후속 적으로 추가 할 수 없음을 많은 경험을 통해 알 수 있습니다. Working Effectively with Legacy Code은 테스트를 거친 테스트되지 않은 소프트웨어 프로젝트를 만드는 방법에 대한 유용한 지침을 제공합니다.

1

웹 양식에서 호출하는 양식 (양식 유효성 검사 제외)을 테스트 할 가능성이 높습니다. 그러면 논리 및 데이터 액세스를 테스트 할 수 있습니다.

테스트 데이터는 별도의 테스트 데이터베이스가 최선의 선택입니다. 그렇지 않으면 테스트 방법을 완료 한 후 테스트 데이터를 제거하는 것이 좋습니다.

1

데이터베이스 관련 단위 테스트의 경우 단위 테스트를 수행하기 위해 별도의 안정적인 테스트 데이터베이스를 사용합니다.

우리는 또한 커밋되지 않은 TransactionScope에서 데이터 수정 테스트를 래핑하므로 후속 테스트 실행을 위해 데이터 변경 사항을 롤백합니다. 우리는 이것이 실제로 효과가 있다는 것을 알았습니다.

0

툴링 측면에서 보면 ASP.NET 웹 폼 앱을 테스트 할 수있는 방법을 찾고 있습니다. 모델 부분 (데이터 액세스, 등)에 대해 NUnit, 로컬 SQL Express db를 사용하고 모든 테스트를 실행하기 전에 스키마를 작성하는 코드 (우리가 체크인 한 .sql 파일에서)를 작성했습니다.

테스트 사이에 NUnit DataRollback 확장을 사용하여 각 실행 후에 db 변경 사항을 롤백합니다.

레일스의 기능 테스트와 비슷한 방법으로 페이지의 로직을 테스트하는 좋은 방법을 아직 모릅니다. 보험의 관점에서 볼 때 엄청난 것입니다. 많은 로직을 모델로 다시 밀어 넣을 수는 있지만 중요한 파일에 코드 뒤에 코드가있어 끊을 수 있으며 유닛 테스트를 원합니다.

관련 문제