2009-04-07 8 views
0

NUnitでテストできるように、以下のメソッドのコードを書く方法はありますか? Hashtableの処理方法は?NUnitテストコードを書く

public DataSet MySampleMethod(int param1, string param2, Hashtable ht) 
{ 
    if(ht==null) 
    { 
     ht = new Hashtable(); 
    } 
    ht.Add("testKey","testData"); 

    DataSet ds = new DataSet(); 
    ds.Tables.Add(); 
    ds.Tables[0].Columns.Add("Column1"); 
    ds.Tables[0].Columns.Add("Column2"); 
    ds.Tables[0].Columns.Add("Column3"); 

    DataRow dr = ds.Tables[0].NewRow(); 
    dr["Column1"] = "My column 1"; 
    dr["Column2"] = "My column 2"; 
    dr["Column3"] = "My column 3"; 
    ds.Tables[0].Rows.Add(dr); 

    DataRow dr1 = ds.Tables[0].NewRow(); 
    dr1["Column1"] = param1.ToString(); 
    dr1["Column2"] = param2; 
    dr1["Column3"] = ht["testKey"].ToString(); 
    ds.Tables[0].Rows.Add(dr1); 

    return ds; 
} 
+0

* * *このメソッドは何ですか?私たちはMySampleMethodというメソッドのテストを書かなければならないのですか? – Ken

+0

私は、ハッシュテーブルの値をどのように渡すことができるかを知る必要があります。また、HashTableのテストフィクスチャーコードをNunitでテストできるようにする方法も知っておく必要があります。 – Arunachalam

+0

上記の投稿は私の友人から送られてきたので、私は彼のために返答しました – Arunachalam

答えて

9

最初に質問するのは、このメソッドを書く必要がある理由は何ですか。私のために何をしていますか?

このメソッドには、人間にとってわかりやすい名前を付けます。 私は見ることができますが、このメソッドは整数、文字列、およびハッシュテーブルを取ります。方法は、次いで、最初の行のような値が含ま

  • 、3列と孤立テーブルを含むデータセットを返すことが期待されている{「マイ列{ColumnNoを}」..}
  • 含有する第二の行そのアレンジ

    1. :作成既知の入力(int型I、[intParam.ToString()、stringParam、ハッシュテーブル[ "とtestkey"]]

試験は、この方法は、 試験#1自明であるべきです文字列S、いくつかの「テストデータ」=> Y)

  • 法にハッシュテーブル:メソッドを呼び出し、結果のデータセット
  • アサート得る:それは2つのレコードを持つ単一のテーブルを持っているかどうかを確認するために、データセットを照会します。表のレコードの内容を調べて、ヘッダー行と[I、S、Y]の行が含まれているかどうかを確認します。
  • 試験番号2: ハッシュテーブルパラメータにnullを渡す点を除いて、上記のテストと同様です。

    あなたが投稿したスニペットに基づいて見ることができます。 HTH

    更新:あなたは「ハッシュテーブルハンドル」や「ハッシュテーブルのためのテスト・フィクスチャのコードを書く」ことで、ここで何を意味するかわかりませんか?ハッシュテーブルはあなたの関数の単なるパラメータです。テストはこのようなものになると思います(悪い命名と定数の欠如を許してください...実際にこの関数が何のために使われているのか分からない限り) )

    [Test] 
    public void Test_NeedsABetterName() 
    { 
        int intVal = 101; string stringVal = "MyString"; string expectedHashValue = "expectedValue"; 
        Hashtable ht = new Hashtable(); 
        ht.Add("testKey", expectedHashValue); 
    
        Dataset ds = MySampleMethod(intVal, stringVal, ht); 
    
        Assert.AreEqual(1, ds.Tables.Count); 
        Assert.AreEqual(2, ds.Tables[0].Rows.Count); 
        // check header Row1.. similar to Row2 as shown below 
        DataRow row2 = ds.Tables[0].Rows[1]; 
        Assert.AreEqual(intVal.ToString(), row2["Column1"]); 
        Assert.AreEqual(stringVal,   row2["Column2"]); 
        Assert.AreEqual(expectedHashValue, row2["Column3"]) 
    } 
    

    私はここであなたをスピードアップするために、リストhereからNUnitのか、1とC#で実用的なユニットテストのような良い本を取得お勧めします。

    +0

    ハッシュテーブルの値をどのように渡すことができるかを知る必要があります。また、HashTableのテストフィクスチャーコードをNunitでテストできるようにする方法も知っておく必要があります。 – Arunachalam

    +0

    上記の投稿は私の友人から送られてきたので、私は彼のために返信しました – Arunachalam

    +0

    Hashtableのテストフィクスチャコードとはどういう意味ですか?ハッシュテーブル機能をテストしようとしていないと思っています。もう少し...私は切断を感じる。 – Gishu

    関連する問題