2009-07-28 17 views
2

私はクラスのテストの束を書いている、と率直に言って、私はインテリジェントに、各テストに名前を付けるの努力に行きたくない:「Compare2002to2002forLessThanOrEqual」をVisual Studioでは、一意のメソッド名を自動的に生成する方法はありますか?

を私はTestMethod120を通じてTestMethod1とクールだ - しかし、私それぞれの名前を編集する必要があり、それは迷惑になります。 [TestMethod]属性でタグ付けされたクラスのすべてのメソッドに対して一意の名前を生成するプラグインはありますか?

答えて

4

あなたが最初から明確なテストメソッドを作成している場合、メソッドの命名は偉大なオーバーヘッドすべきではありません。これは、テスト方法をコピー&ペーストしていくつかの値を変更し、DRY principleに違反している可能性があることを示しています。これが当てはまる場合、抽象化を使ってテストをリファクタリングし、少数のメソッド(おそらく1つ)を残してから、メソッドが繰り返すことができる一連のテスト条件を提供する方が良いでしょうか?

これは、テストしているモジュールのインターフェイスまたは機能が変更された場合、多くのテストメソッドを変更する必要がなくなるという利点があります。

+0

良い点。私はこれについて考える必要があります。 –

+0

私はこれを受け入れています。私はそれが独自の方法を持っている個々のテストのアイデアが好きです。だから、それは難しいトレードオフです。 –

+0

個々のテストには独自のメソッドを持ついくつかの明確なメリットがあります。具体的には、テストが失敗し、テストフレームワークが他のテストメソッドを実行し続けることができます。ただし、各テスト条件の結果を照合して報告する手段を提供し、ファースト・ファーストではない場合は、「シングル・メソッド+データセット」アプローチで容易に再現されます。つまり、最初のテスト・メソッドを終了しない状態の失敗。 – teabot

0

あなたがここでどのような機能を望んでいるかは完全にはっきりしていません。この名前がどのように生成されると想像しますか?あなたは[TestMethod]とタイプするとすぐにメソッド名を吐くためにエディタを探していますか?

もしそうなら、このような機能は今日Visual Studioには存在しません。

+0

それは素晴らしいですが、それはファイルを実行し、すべてのdupeメソッド名を検出し、エラーがないように私のためにそれをすべて解決するならばさらに良いでしょう。 –

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> 
関連する問題