2013-03-15 3 views
0

이 내가 아마이 일에 대한 증오를 많이받을거야 그래서 민감한 대상이 될 것으로 보인다, 그러나 여기 간다 아무것도 : 나는 많이 일하고 있어요 응용 프로그램이에 의존조건부 단위 테스트

외부 API를 사용하고 API는 개인화 된 개발자 키가 있어야 모든 작업을 수행 할 수 있습니다. 이것은 나 같은 newb 테스트 유닛이 내 개발자 키가 손상 될 수 있다는 끊임없는 공포로 살아 가지 않고 재배포 할 수있는 테스트를 작성하는 것을 특히 어렵게 만듭니다.

요점은 다음과 같습니다. 개발자 키가 제공되지 않으면 유닛 테스트가 실행되지 않도록하고 싶습니다. 또한 이러한 일이 발생하면 응용 프로그램 오류가 아니라 사용자 오류라고 분명히 밝혀야합니다.

MSTest 프레임 워크를 사용하면 쉽게 할 수 있습니까? 내가 지금까지 시도했습니다 무엇

지금 (VB)

을 나는 단순히 개발자 키가 설정되지 않은 경우 내 테스트가 실패시키는 해요 :이와

<TestClass()> Public Class Tests 

    Private Shared DeveloperKey As NMAKey 

    <ClassInitialize> 
    Public Shared Sub Initialize(context As TestContext) 
     DeveloperKey = NMAKey.TryParse("Your developer key") 
    End Sub 

    <TestMethod> 
    Public Sub Example() 
     ' test condition 
     Assert.IsNotNull(DeveloperKey) 

     ' 
     ' actual test code that relies on 'DeveloperKey' being set 
     ' 
    End Sub 

End Class 

내 문제가 사용자 오류와 실제 장치 오류는 구분되지 않습니다.

답변

0

개발자 키를 구성 파일에 넣고 버전 제어에서 해당 파일을 무시해야합니다. 개별 테스트 대신 키가 테스트 클래스 초기화에 있는지 확인할 수 있습니다. 또 다른 가능성은 구성 파일에 키가 있는지 검사하는 테스트를 작성하는 것입니다. 사용자 오류와 응용 프로그램 오류 사이에 별개의 것이 중요하다고 생각하는 이유를 이해하지 못했습니다. 깨졌습니다. :)

+0

제안 해 주셔서 감사합니다. 코드에 아무런 문제가 없기 때문에 둘 사이에 별개의 것이 중요하다고 생각하지만 개발자 키가 제공되지 않으면 단위 테스트에서 100 %의 시간이 여전히 실패합니다. 이 경우 깨진 것은 내 의견으로는 정말로 깨진 것이 아닙니다. MSTest 프레임 워크에서 다루지 않는 시나리오 일뿐입니다. –

+0

답변으로 표시하고 있습니다. 구성 파일은 훌륭한 아이디어였습니다. 나는 또한 당신이 제안한 것처럼 테스트 조건을 initialize 메소드로 옮겼고'Assert.IsNotNull'을'Assert.Inclusclusive'로 대체하여 구별했다. 지금까지 이것은 환상적으로 작동하는 것으로 보이며 모든 절차에서 테스트 조건을 작성할 필요가 없습니다. –