2011-08-02 6 views
5

단위 테스트에서 TestCleanup을 수행하려고하지만 매개 변수를 정리 메서드에 전달해야합니다. 그러나 기본 TestCleanup이 자동으로 호출되기 때문에 매개 변수를 전달할 수는 없습니다.TestCleanup의 매개 변수 전달

누군가가이 방법을 제안 할 수 있습니까?

+1

작업중인 코드를 게시하면 질문에 답변하는 데 도움이됩니다. –

답변

3

및 정리 테스트 방법 : CleanUp() 방법은 모든 단위 테스트 후 실행됩니다, someValue가 결합되기 때문에

namespace YourNamespace 
{ 
    [TestClass] 
    public class UnitTest1 
    { 
     private string someValue; 

     [TestMethod] 
     public void TestMethod1() 
     { 
      someValue = "someValue"; 
     } 

     [TestCleanup] 
     public void CleanUp() 
     { 
      // someValue is accessible here. 
     } 
    } 
} 

정확한 단위 테스트의 문맥.

희망이 도움이됩니다.

0

테스트 클래스의 필드를 전달해야 할 필요가 있다고 생각하는 매개 변수 값으로 설정할 수 있지만 솔직히 말해서 정리에 대한 매개 변수가 필요하다는 것은 놀랍습니다. 이것은 시험에 문제가있는 냄새 일 것입니다.

단위 테스트에는 정리가 필요하지 않아야하며, 각 테스트마다 자체 설정을 수행해야하며 별도로 실행해야합니다.

일부 외부 종속성이있는 정리 테스트에 정리가 필요한 경우 제안한대로 필드를 사용할 수 있습니다 (각 테스트의 시작 부분에서 설정할 수 있음). 따라서 정리 기능이 테스트가 실패한 경우 정리할 대상을 알고 있어야합니다.) 그 테스트 후에 정리할 올바른 값을 지정해야합니다.) 또는 각 테스트에서 명시 적으로 호출 된 명시 적 정리 기능 (필요한 매개 변수를 가짐)을 최종적으로 만들 것입니다. 그런 다음 TestFixture를 정리하여 ALL 데이터를 정리했는지 확인하십시오. ANY에 의해 사용 된 데이터는 정리 메소드를 호출하지 않고 테스트에 실패한 경우를 대비하여 테스트합니다.

당신은 설정, 테스트 간의 통신을 테스트 클래스 인스턴스 변수를 사용할 수
+1

테스트 설정 및 정리 방법이 존재하는 이유는 모든 테스트에 대해 공통 설정 및 정리 논리를 캡슐화 할 수 있기 때문입니다. 단위 테스트 로직을 캡슐화하는 것이 아닙니다. – Zorayr