문제

LodeBase에서 Ndepend에 NDepend를 사용해 왔고 실제 코드는 비행 색상으로 전달하는 것처럼 보이지만 내 단위 테스트 코드는 많은 작업을 사용할 수 있습니다.제안 중 하나는 테스트 간의 높은 분리도로 인해 Ndepended Ndepended가 내 유닛 테스트 클래스를 정적 클래스로 전환시켰다.테스트 사이의 상태를 공유하지 않고 모든 명령을받을 수 있도록 도와 줄 수있는 것처럼 보입니다.단위 테스트 클래스를 정적 클래스로 변환해야합니까?

동일한 TestFixture에서 테스트 방법과 TestFixtures 간의 테스트 방법 간의 공유 상태

도움이 되었습니까?

해결책

흥미롭게! 이전에 프로젝트를 테스트하기 위해 NDepend 분석을 적용하는 사람은 결코 보지 못했습니다. 유닛 테스트는 코드 기반의 첫 번째 클래스 시민으로 간주되어야하지만 일반적으로 응용 프로그램에 배포되지 않으며 동일한 아키텍처 제약 조건 (FXCOP, NDEPED 등)으로 보지 않아도됩니다. 일부 레벨에서는이 접근 방식에 동의합니다. 테스트 품질을 확인해야하지만 프로덕션 코드에서 식별 할 수있는 클래스 커플 링 문제를 식별하는 것보다 다른 이점을 제공 할 수있는 이점을 볼 수는 없습니다.

NUNIT에 관한 것은 일반적으로 해당 테스트 클래스의 모든 테스트 방법에 대해 TestFixure의 단일 인스턴스를 인스턴스화합니다. 국가 은 테스트간에 공유 이며, 좋고 나쁘다.

좋은 : 테스트 픽스처가 설정되면 생성하는 데 시간이 걸릴 수 있습니다.

BAD : 테스트간에 재설정되어야하는 상태는 테스트간에 고치는 것입니다.

NUnit이 테스트를위한 정적 메소드를 지원하고 테스트 픽스처 내의 상태가 필요한 경우 해당 필드는 정적이어야합니다. 테스트의 상태가 AppDomain 테스트의 수명 동안 공유되기 때문에 실제로 무서운 것입니다.

키는 조명기 및 테스트 초기화 / 찢어짐에 대한 NUNIT 속성을 사용하는 것입니다. NUNIT 프레임 워크가 클래스를 생성 할 때 제어 할 수 없으므로 조명기 초기화를 위해 생성자 또는 마무리 장치를 사용하지 마십시오.

다른 팁

테스트가 특정 순서로 실행할 필요가 없거나 초기화 코드에 의존하지 않으면 정적으로 만들 수 있습니다.

이것은 성공을위한 조리법이 아니라는 것을 기억합니다.

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