2013-06-06 2 views
0

단위 테스트를 작성하여 정적 변수의 다른 값을 기반으로 메소드의 결과가 올바른지 확인하려고합니다.정적 변수의 다른 값을 기반으로 VS에서 단위 테스트를 어떻게 실행합니까?

public void TestMethod1() 
{ 
    Object1.StaticMember = 1 
    Object2 test = new Object2(); 
    Assert.AreEqual("1", test.getStaticVal()); 
} 

public void TestMethod2() 
{ 
    Object1.StaticMember = 2 
    Object2 test = new Object2(); 
    Assert.AreEqual("2", test.getStaticVal()); 
} 

I 연락 된 실패한 테스트있는 posibility가되도록 VS2012에서 단위 테스트 동시에 excecuted 것을 : 여기

간단한 예이다. 사실입니까? 한 번에 하나씩 실행되도록 테스트를 작성하려면 어떻게해야합니까?

+0

가능한 중복 http://stackoverflow.com/questions/10632975/static-class -method-property-in-unit-test-it-it-not-property. – Mzf

+0

정말 그렇습니다.이 두 테스트가 VS2010을 반복적으로 통과한다는 의미입니까? VS2012 동시성 테스트가 실행되는 것에 대해 더 많은 참고 자료가 있습니까? – Spock

답변

3

이 그것을 할 수있는 더 우아한 방법은 아마도하지만 당신은 항상이 같은 잠금 객체를 사용할 수 있습니다 ...

private static Object LockObject = new object(); 

    public void TestMethod1() 
    { 
     lock(LockObject) 
     { 
      Object1.StaticMember = 1; 
      Object2 test = new Object2(); 
      Assert.AreEqual("1", test.getStaticVal()); 
     } 
    } 

    public void TestMethod2() 
    { 
     lock (LockObject) 
     { 
      Object1.StaticMember = 2; 
      Object2 test = new Object2(); 
      Assert.AreEqual("2", test.getStaticVal()); 
     } 
    } 
+2

가난한 디자인에 +1할만한 충분한 해결책. –

+0

그것은 지금, 감사합니다! – dspiegs

+0

@AustinSalonen 나는 직장에서 디자인을 선택하지 않는다 – dspiegs

관련 문제