2009-04-07 4 views
1
public DataSet ExampleMethod(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"); 
    return ds ; 


    } 

これは、文字列、int、およびハッシュテーブル型を入力として持つため、これは単なる例示的な方法です。このメソッドを単体テストするために、どのタイプの値をハッシュテーブル型に渡しますか。私はNunitフレームワークでそれをテストできるように、このメソッドのサンプルNunit Fixtureコードが必要です。私のメソッドはデータセットを返します。私はAREequalsを使用するため、テキストフィクスチャをどのように記述しますか? ))が返された場合、メソッドに対して何を行うかユニットテストで、ハッシュテーブルの入力を渡す方法

+0

これはあなたの質問に答えますか? –

答えて

0

TestMethodまたはTestFixtureにHashTableをダミーデータで作成し、そのオブジェクトを渡すことができます。私はあなたのことを正しく理解していますか?

[SetUp]メソッドでは、HashTableにダミーデータを設定します。

Hashtable ht = new Hashtable(); 

[SetUp] 
public void SetUp() 
{ 
    ht.Add("key1", "value1"); 
    ht.Add("key2", "value2"); 
    ht.Add("key3", "value3"); 
} 

実際の質問は、返されたデータセットのアサートについてです。 引き続きAssert.AreEqualを使用できますが、HashTableが指定されたと想定されるセルデータがDataSetに含まれているかどうかをテストします。

Assert.AreEqual(ht["key1"], ds.Tables[0].Rows[0][0].ToString()); 
Assert.AreEqual(ht["key1"], ds.Tables[0].Rows[0][1].ToString()); 

これにループを使用できます。

TestMethodは次のようになります。

[Test] 
public void Should_Do_Stuff() 
{ 
    MyClass myObject = new MyClass(); 

    DataSet ds = myObject.ExampleMethod(1, "string", ht); 

    Assert.AreEqual(ds.Tables[0].Rows.Count, ht.Count); 
    Assert.AreEqual(ht["key1"], ds.Tables[0].Rows[0][0].ToString()); 
    Assert.AreEqual(ht["key1"], ds.Tables[0].Rows[0][1].ToString()); 
} 

ご質問にお答えします。

+0

あなたはもっと手の込んだことができます。ハッシュテーブルはコレクションであるので、ユニットテストの適切な方法です – Arunachalam

+0

このメソッドはデータセットを返すので、返り値の型がint AREequalsの場合、期待される結果と結果をどのように比較すればよいですか?(5、add(2,3 ))私はこのように確認することができます – Arunachalam

+0

これはあなたの質問に答えますか? –

0

nullを渡すか、静的データで新しいハッシュテーブルを作成し、この関数に渡します。データセットをチェックするために、返されたデータセットのカウントでアサートすることができます。

関連する問題