代码之家  ›  专栏  ›  技术社区  ›  Tom Ritter

在Visual Studio中,是否有自动生成唯一方法名的方法?

  •  2
  • Tom Ritter  · 技术社区  · 15 年前

    我正在为一个类编写一系列测试,坦率地说,我不想尝试智能地命名每个测试:“Compare2002到2002比OreQual”

    我对testmethod1到testmethod120很酷-但我必须编辑每个名称,这会让人很恼火。有没有插件可以为用[testmethod]属性标记的类中的所有方法生成唯一的名称?

    3 回复  |  直到 15 年前
        1
  •  4
  •   teabot    15 年前

    如果您从头开始编写不同的测试方法,那么方法的命名不应该是很大的开销。这表明您可能正在复制和粘贴测试方法并更改一些值,并且可能违反 DRY principle . 如果是这样的话,那么用一个抽象来重构测试,让您使用更少的方法(甚至可能是一个方法),然后提供一组方法可以迭代的测试条件,这不是更好吗?

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

        2
  •  0
  •   JaredPar    15 年前

    这里不完全清楚您想要什么功能。您如何设想生成这个名称?您是否希望编辑器在键入[testmethod]后立即吐出方法名?

    如果是这样,那么现在的Visual Studio中不存在这样的功能。

        3
  •  0
  •   jrummell    15 年前

    你可以创建一个 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>