2009-07-28 153 views
2

我寫了一堆測試的一類,並坦率地說我不想去命名每個測試的努力智能化:「Compare2002to2002forLessThanOrEqual」在Visual Studio中,有沒有辦法自動生成唯一的方法名稱?

我冷靜通過TestMethod120 TestMethod1 - 但我我們必須編輯每個名字,這會讓人討厭。是否有任何插件會爲使用[TestMethod]屬性標記的類中的所有方法生成唯一名稱?

回答

4

如果你從頭開始編寫不同的測試方法,那麼方法的命名不應該是一個很大的開銷。這表明您可能會複製並粘貼測試方法並更改某些值,並可能違反了DRY principle。如果是這種情況,用抽象重構測試會不會更好,讓您使用更少的方法(甚至可能是更少的方法),然後提供一組方法可以迭代的測試條件?

這樣做的好處可能是,如果模塊的接口和功能正在測試的變化,你只需要改變單一的測試方法,而不是很多。

+0

好點。我必須考慮這一點。 – 2009-07-28 15:48:34

0

這不完全清楚你想要什麼功能。你如何設想這個名字產生?您是否在尋找編輯器,只要鍵入[TestMethod],就吐出一個方法名稱?

如果是這樣的功能今天在Visual Studio中不存在。

+0

這會是很酷,但更重要的是,如果將通過文件運行時,檢測出所有的欺騙方法名,並解決這一切對我來說沒有任何錯誤。 – 2009-07-28 15:35:01

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> 
相關問題