2010-07-27 2 views
0

질문은 매우 간단하며 여러 정리 테스트를 만드는 방법을 알아야합니다.VS2008 단위 테스트에서 여러 정리 작업

몇 가지 테스트가 있으며 각 테스트마다 다른 파일이 만들어집니다. 각각에 대해 정리 작업을 바인드하고 싶으므로 각 테스트에 대해 지정된 파일을 삭제할 수 있습니다.

예 :

[TestMethod] 
public void TestMethodA() 
{ 
// do stuff 
} 

[TestMethod] 
public void TestMethodB() 
{ 
// do stuff 
} 

[TestCleanup] 
public void CleanUpA() 
{ 
// clean A 
} 

[TestCleanup] 
public void CleanUpB() 
{ 
// clean B 
} 

어떤 아이디어가?

+0

동일한 위치에서 항상 동일한 파일을 만들고 "TestCleanup"메커니즘을 사용할 수 있습니까? – Khh

+0

아니요, 그들은 다른 유형이며 다른 확장자를 가지고 있습니다. –

+0

mh 좋습니다. VS08의 새로운 테스트 기능과 테스트의 일부 속성 설정을 통해 처리 할 수 ​​있는지에 대해서는 많이 알지 못합니다. 금식 방법은 테스트 클래스에서 마지막으로 실행 된 테스트를 기억하고 TestCleanup 특성으로 주석 처리 된 메서드에서 정리를 수행하는 것입니다. – Khh

답변

0

내가 볼 수있는 몇 가지 옵션이 있습니다. 당신을 위해 일할 수있는 간단한 해결책은 현재 실행중인 테스트에서 사용되는 파일의 경로를 저장하는 클래스 테스트 클래스의 클래스 수준 변수를 갖는 것입니다. 각 테스트에 해당 변수에 대한 현재 파일 경로를 지정하십시오. 그런 다음 해당 변수를 사용하여 파일을 정리하는 단일 정리 메소드를 가질 수 있습니다.

또 다른 아이디어이지만 중요한 리팩토링이 필요할 수도있는 것은 파일 시스템에서 코드를 추상화하기 위해 의존성 삽입 방식을 사용하는 것입니다. 파일을 생성/열기하는 코드 대신 파일을 생성 한 다음 스트림 객체를 주 코드로 반환하는 IO 추상화 구성 요소 핸들을 가질 수 있습니다. 단위 테스트를 실행할 때 주 코드에 FileStream 대신 MemoryStream을 반환하는 IO 추상화 구성 요소의 단위 테스트 버전을 제공하면 정리를 수행 할 필요가 없습니다. 내 설명이 명확하지 않은 경우 대략적인 예제로 업데이트 할 수 있습니다.

관련 문제