2009-07-28 4 views
2

나는 클래스에 대한 테스트의 무리를 쓰고 있어요, 솔직히 나는 지능적으로 각 테스트를 명명의 노력에 가고 싶지 않아 "Compare2002to2002forLessThanOrEqual을"Visual Studio에서 고유 한 메서드 이름을 자동으로 생성하는 방법이 있습니까?

을 내가 TestMethod120 통해 TestMethod1 멋진 해요 -하지만 각 이름을 편집해야하는데 짜증이납니다. [TestMethod] 속성으로 태그 지정된 클래스의 모든 메소드에 대해 고유 한 이름을 생성하는 플러그인이 있습니까?

답변

4

다음 메소드의 이름은 멋진 오버 헤드해서는 안됩니다. 이는 테스트 방법을 복사하여 붙여 넣거나 일부 값을 변경하여 DRY principle을 위반했을 수도 있음을 나타냅니다. 이 경우 추상화를 사용하여 테스트를 리팩터링하는 것이 좋지 않을 것이며 적은 수의 메소드 (아마도 하나)를 남겨두고 메소드가 반복 할 수있는 테스트 조건 세트를 제공 할 것입니다.

테스트 할 모듈의 인터페이스 나 기능이 변경되면 많은 테스트 메서드 대신 단일 테스트 메서드 만 변경하면됩니다.

+0

좋은 지적. 나는 이것에 대해 생각해야 할 것이다. –

+0

나는 이것을 받아들이고있다. 나는 각자의 테스트가 자신의 방법을 가지고 있다는 생각을 좋아한다. 따라서 힘든 거래입니다. –

+0

개별 테스트에는 자체 테스트 방법이 있습니다. 테스트가 실패하고 테스트 프레임 워크가 다른 테스트 방법을 계속 실행할 수 있습니다. 그러나 이것은 각 테스트 조건의 결과를 대조하고보고하는 수단을 제공하고 실패하지 않는 경우 '단일 방법 + 데이터 세트'방식으로 쉽게 재현됩니다. 즉, 첫 번째 방법에서 테스트 방법을 종료하지 않음을 의미합니다 상태의 실패. – teabot

0

여기서 원하는 기능이 무엇인지 분명하지 않습니다. 이 이름이 생성 된 것을 어떻게 상상합니까? [TestMethod]를 타이핑하자마자 에디터가 메소드 이름을 뱉어 내고 싶습니까?

그렇다면 현재 이러한 기능은 Visual Studio에 존재하지 않습니다.

+0

멋지 겠지만, 파일을 돌면서 모든 속임수 메서드 이름을 찾아 내고 모든 것을 해결하여 오류가 없도록하는 것이 좋습니다. –

0

대부분의 이름을 채우는 code snippet을 만들 수 있습니다. 이런 식으로 뭔가 : 당신은 처음부터 별개의 시험 방법을 작성하는 경우

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/CodeSnippet"> 
    <CodeSnippet Format="1.0.0"> 
    <Header> 
     <Title></Title> 
     <Description></Description> 
     <Author></Author> 
     <Shortcut>test</Shortcut> 
    </Header> 
    <Snippet> 
     <!-- Add additional Snippet information here --> 
     <Declarations> 
     <Literal> 
      <ID>val</ID> 
      <ToolTip></ToolTip> 
      <Default>val</Default> 
     </Literal> 
     <Literal> 
      <ID>condition</ID> 
      <ToolTip></ToolTip> 
      <Default>condition</Default> 
     </Literal> 
     </Declarations> 
     <Code Language="CSharp"> 
     <![CDATA[ [TestMethod] public string Compare$val$to$val$for$condition$ 
        { 

        } ]]> 
     </Code> 
    </Snippet> 
    </CodeSnippet> 
</CodeSnippets> 
관련 문제