2009-04-07 2 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 및 해시 테이블 유형을 입력으로 가지고 있기 때문에 지금은 예제 메소드에 불과하지만 int 및 string에 임의의 값을 전달할 수 있지만 이 메서드를 단위 테스트하려면 어떤 유형의 값을 해시 테이블 형식에 전달해야합니다. 나는 또한 Nunit 프레임 워크에서 테스트 할 수 있도록이 메서드에 대한 샘플 Nunit Fixture 코드를 원한다. 내 메서드가 데이터 세트를 반환하기 때문에 내가 AREequals를 사용하기 때문에 텍스트 고정 장치를 작성하는 방법 (5,)). int를 반환하는 경우 .so 데이터 집합을 반환 할 때 메서드에 대해 수행 할 작업단위 테스트에서 해시 테이블에 대한 입력을 전달하는 방법

+0

귀하의 질문에 대한 답변이 있습니까? –

답변

0

TestMethod에서 HashTable을 만들거나 더미 데이터로 TestFixture를 만들고 해당 개체를 전달할 수 있습니다. 내가 너를 제대로 이해하고 있니?

[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을 전달하거나 정적 데이터가 포함 된 새 해시 테이블을 만들고이 함수에 전달하십시오. 데이터 집합을 검사하기 위해 반환 된 데이터 집합 개수에 대해 주장 할 수 있습니다. null이거나 필요하지 않으면 값입니다.

관련 문제