在Visual Studio中,有没有办法自动生成唯一的方法名称?

时间:2009-07-28 15:28:59

标签: visual-studio unit-testing tdd

我正在为一个类编写一堆测试,坦率地说,我不想去智能地命名每个测试:“Compare2002to2002forLessThanOrEqual”

我对TestMethod1通过TestMethod120很酷 - 但是我必须编辑每个名字,这很烦人。是否有任何插件可以为使用[TestMethod]属性标记的类中的所有方法生成唯一名称?

3 个答案:

答案 0 :(得分:4)

如果从头开始编写不同的测试方法,那么方法的命名不应该是一个很大的开销。这表明您可能会复制并粘贴测试方法并更改某些值,并可能违反DRY principle。如果是这种情况,用抽象重构测试不是更好,只留下更少的方法(甚至可能是一个),然后提供一组方法可以迭代的测试条件?

这样做的一个好处是,如果您正在测试的模块的接口或功能发生变化,您只需更改单个测试方法而不是更多。

答案 1 :(得分:0)

目前还不完全清楚你想要的功能。您如何设想生成此名称?一旦输入[TestMethod],您是否正在寻找编辑器来吐出方法名称?

如果是这样,今天Visual Studio中不存在这样的功能。

答案 2 :(得分: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>