2012-07-31 4 views
0

단위 테스트 용으로 TestClass를 만들고, 테스트 메소드를 실행하고, 메소드가 올바르게 실행되었으며, 결과에 대한 테스트 클래스 기반 내에 클래스 속성에 값을 저장하고 싶습니다. 그 값을 나중에 사용하십시오.테스트 클래스에 속성이 있습니까?

나는 이것을 시도하고 컴파일러가 한 메서드에서 다른 메서드로 이동하자마자 내가 설정 한 모든 속성이 깨끗하게 지워진다는 것을 알게되었습니다. 중단 점을 확인한 후 첫 번째 메서드의 끝에서 값이 속성에 있고 두 번째 메서드의 시작 부분에 같은 속성이 null 인 경우

다른 사람이 같은 것을 시도하는 것처럼 보이지 않으므로 메소드간에 값을 공유하거나 잘못된 접근 방식을 취하는 것이 가능합니까?

미리 감사드립니다.

+0

mstest를 사용하고 있다고 가정합니까? –

+0

아마도 정적 속성이 필요합니다 – jpm

+0

정적 클래스 멤버를 사용하여 값을 저장할 수 없습니까? –

답변

5

잘못된 접근 방법을 취하고 있습니다.

단위 테스트는 정의에 따라 완전히 독립적이어야하며 결정적이어야합니다. 그들은 서로 의존해서는 안됩니다.

첫 번째 단위 테스트의 반복 부분을 다른 단위 테스트에서 호출 할 수있는 도우미 메서드로 리팩토링 할 수 있어야합니다. 작업은 두 번 수행되지만 단위 테스트는 매우 빠르므로 오버 헤드가 최소화되어야합니다.

2

컴파일러가 아닙니다. 각 테스트에 대해 새로운 인스턴스를 (잠재적으로) 생성하는 테스트 러너입니다.

테스트는 일반적으로 독립적이어야합니다. 테스트를 수행하는 방법을 찾을 수는 있겠지만 그렇게하지 않는 것이 좋습니다. 가능한 한 최선을 다해 주위를 설계하십시오.

1

사용중인 테스트 프레임 워크에 관계없이 나에게 좋지 않은 냄새가납니다. 모든 자동화 된 테스트 (공식적인 단위 테스트는 물론)는 서로 독립적이어야합니다. 정적 필드/속성이 작동 할 수도 있지만 먼저 테스트를 리팩터링하는 것이 좋습니다.

관련 문제