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

问题描述:

我写了一堆测试的一类,并坦率地说我不想去命名每个测试的努力智能化:“Compare2002to2002forLessThanOrEqual”在Visual Studio中,有没有办法自动生成唯一的方法名称?

我冷静通过TestMethod120 TestMethod1 - 但我我们必须编辑每个名字,这会让人讨厌。是否有任何插件会为使用[TestMethod]属性标记的类中的所有方法生成唯一名称?

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

这样做的好处可能是,如果模块的接口和功能正在测试的变化,你只需要改变单一的测试方法,而不是很多。

+0

好点。我必须考虑这一点。 – 2009-07-28 15:48:34

这不完全清楚你想要什么功能。你如何设想这个名字产生?您是否在寻找编辑器,只要键入[TestMethod],就吐出一个方法名称?

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

+0

这会是很酷,但更重要的是,如果将通过文件运行时,检测出所有的欺骗方法名,并解决这一切对我来说没有任何错误。 – 2009-07-28 15:35:01

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