2009-09-21 4 views
0

nUnit을 사용하여 몇 가지 테스트를 구현할 계획입니다. 또한 테스트에서 일부 메트릭을 얻는 데 사용하려는 자생적 메트릭 레코딩 라이브러리가 있습니다. 메트릭 라이브러리는 일반적으로 응용 프로그램에서 사용되는 것을, 일반적으로이 같은 것을 사용 : 이제NUnit 테스트 객체간에 영구 객체를 사용하려면 어떻게해야합니까?

// retrieve configuration. 
string path = GetPath(); 
bool option = GetOption(); 

// Set up metrics recording object. 
Metrics m = new Metrics(path, option); 

Do.Something(); 
m.AddRecord(new Record()); // Record some metrics on what just happened 

// later... 

m.Finish(); // let it know we're done. 

, I (예 : 부모 테스트 클래스에서와 같이) 각 개체에 TestFixtureSetupTestFixtureTeardown을 사용하여이 개체의 인스턴스를 만들 수 있습니다 ,하지만 난 오히려이 메트릭 개체가 에 걸쳐 모든 지속 테스트를 실행 걸쳐 유지하고 싶습니다. 가능한가요, 그렇다면 필요한 것은 무엇입니까?

답변

3

"주어진 네임 스페이스 아래의 모든 테스트 픽스처에 대해 일회성 설정 또는 티어 다운 메서드를 포함하는 클래스를 표시합니다."SetUpFixtureAttribute을 사용할 수 있습니다.

+0

이것은 nUnit 방식입니다. 감사! –

+0

니스,이 속성을 알지 못했습니다 ... –

1

당신은 싱글로 메트릭 개체를 노출 수, 또는 단순히 헬퍼 클래스의 정적 속성으로 :

class TestHelper 
{ 
    public static Metrics Metrics { get; private set; } 

    static TestHelper 
    { 
     string path = GetPath(); 
     bool option = GetOption(); 
     Metrics = new Metrics(path, option); 
    } 

} 

OK, 그것은 매우 좋은 패턴 아니지만, 단위 테스트를 위해 잘해야합니다. ..

+0

싱글 톤이 있습니다. 이것은 단지 하나 일 수 있습니다. :) –

+0

네,하지만 그가 Metrics 클래스를 제어 할 수있는 경우에만 ... –

관련 문제