2017-05-17 21 views
0

私はNUnitテストを11個のparamsで実行する必要がありますが、デバッグしようとするとエラーになります。NUnitで引数が多すぎます

エラー:指定された引数が多すぎる場合は、最大11個の引数を指定してください。私はメソッドのリストとしてこれらのparamsを送信しようとしましたが、それも動作しませんでした。私は何をすべきか ?

情報セキュリティのために変数名が変更されました。

[Test] 
    [TestCase("11111111111", "5355553355", 0, 0, 0, "1", "11111.11111", 0, "INTERNET", null, 1, "abc*@dfg")] 
    public void FlowTestv2(string a, string b, decimal c, decimal d, 
              decimal e, string f, string g, decimal h, 
              string m, string j, string k) 
    { 
     FlowRequest(a, b, c, d,e, f, g, h, m, j, k); 

     Assert.AreEqual(LimitInfo.ErrorMessage, "EndPointMethodNotFound:GetInfo"); 
    } 
+1

11個のパラメータを受け入れる方法は、それ自体のバグです。 NUnitの著者は、指定可能なパラメータの数を制限することを正当化しています。パラメータオブジェクト(パラメータを渡すために使用されるオブジェクト)または名前付きタプルを使用します。ちょうど* 11個のパラメータを周囲に渡しません。 –

+0

私が呼び出すこのメソッドはWebサービスであり、これはWebサービステストの自動化です。私はサービス参照を追加し、私はそれを使用しているので、そのように使用する必要があります。 –

+0

あなたはしません。特に*要求オブジェクト*を受け入れるWebサービスの場合。航空券検索のWebサービスには、何百ものパラメータ(運賃クラス、禁止航空会社、直行便の優先設定)が必要ですが、検索フォームにはFrom-To、Departure Date、Return Dateの4つのパラメータしか入力できません。大きな脂肪要求は、これら4つのパラメータから生成されます。あなたのDTO /パラメータオブジェクトを作成し、それらをWebサービスリクエストにマップする –

答えて

0

あなたのコード例では、メソッドのシグネチャは、11個のパラメータを持っていますが、あなたの[TestCase]は、定義された12を有しています。一つはあまりにも。あなたはthe documentationにexampledとして独自の属性を定義する必要がテストを実行しようとするたび


[TestCase(12,3,4)] 
[TestCase(12,2,6)] 
[TestCase(12,4,3)] 
public void DivideTest(int n, int d, int q) 
{ 
    Assert.AreEqual(q, n/d); 
} 

しかしすべてのテストケースはメソッドのシグネチャと一致する必要があります。

+1

Omg @スマティス、それはポイントです。私は1つのパラメータが欠けていた。ありがとうございました –

+0

@BerkayKırmızıoğluNo Problem。答えを正しいとマークするだけです。 – Smartis

関連する問題