2016-12-26 5 views
0

私はTDDを使用してC#で呪いの単語検閲システムを作成しています.TDDを実装するのはかなり新しいですが、これを達成するための代替方法またはより良い方法があるのでしょうか?リターン文字列を確保するタスクには、呪いの言葉やそのバリエーションは含まれていません。またMSTestに文字列が含まれていない代替方法

明らか
[TestMethod] 
     public void process_CensorCode_GivenJerkface_ReturnsStringWithoutJerkface() 
     { 
      //ACT 
      string result = proc.process("Jerkface you Jerkfacing Jerkfacer &*[email protected]*Jerkface391!!", PROCESS_CODE.CENSOR); 
      //ASSERT 
      Assert.IsFalse(result.Contains("Jerkface")); 
     } 

、私のプログラム:これによって、パブリックフォーラムであることに、私はきれいな言葉でコード内の実際の呪いの言葉を交換するので、私はちょうどこのポストのためのクリーナーバージョンくださいを検閲しようとしています前提としていますjerkface、jerKfAcE、jERKfaCeなどのアカウントです。これらのすべてをテストしたいと思います。これらのバリエーションのすべてをMSTestに書き出す必要がありますか、または単一のテストでこれらのバリエーションをすべて処理するための簡単な方法がありますか?テストの他の面が改善されていることに気づいた場合は、話してください。ちなみに、私はTestClassをの一番上に置い以下で初期化されています:

[TestInitialize] 
     public void Initialize() 
     { 
      //ARRANGE 
      proc = new RegExProcessor(); 
     } 
+2

[NUnitのパラメータ化されたテストに相当するMSTest]の複製がありますか?(http://stackoverflow.com/questions/2367033/mstest-equivalent-for-nunits-parameterized-tests) – jonrsharpe

答えて

2

NUnitのは、このシナリオのためのTestCase属性を持っています。 MSTestをまだこのような単純な形でテストケースをサポートしていないので、あなたがより多くの努力を置くべきMSTestをして、それを達成するために

[Test] 
[TestCase("Jerkface")] 
[TestCase("jerKfAcE")] 
//[TestCase("...")] 
public void process_CensorCode_GivenJerkface_ReturnsStringWithoutJerkface(string checkedWord) 
{ 
    //ACT 
    string result = proc.process("Jerkface you Jerkfacing Jerkfacer &*[email protected]*Jerkface391!!", PROCESS_CODE.CENSOR); 
    //ASSERT 
    Assert.IsFalse(result.Contains(checkedWord)); 
} 

:次のように使用することができます。このanswerには、MSTestで完了する方法の詳細が記載されています。

+0

NUnitは最もクリーンなアプローチですそれは可能性があり、それは...あなたはNUnit 3で確実に動作するようにNUnitのアダプタを取得しましたか?過去にいくつかのバグがありましたが、テストはすべて実行されません。 –

+0

テストケースのサポートは、私がMSTestよりNUnitを好む理由の1つです。アダプターに関して - 私はReSharperテストランナーを使用しています。 – CodeFuller

関連する問題