2010-01-03 93 views
0

夥計們,我是新編寫測試用例的方法。在這裏,我有一個使用NUnit測試框架編寫測試用例的InsertMethod。幫我寫下如下方法的測試用例:使用NUnit的測試用例

public bool insertUser(String FirstName,String LastName) { bool result = false;

SqlConnection myconn = new SqlConnection(); 
    SqlCommand mycmd = new SqlCommand(); 

    try 
    { 
     myconn.ConnectionString = "Data Source=BABU-PC;Initial Catalog=contacts;Integrated Security=True"; 

     myconn.Open(); 

     mycmd.Connection = myconn; 
     mycmd.CommandText = "InsertUser"; 
     mycmd.CommandType = CommandType.StoredProcedure; 


     SqlParameter param1 = new SqlParameter(); 
     param1.ParameterName = "@FirstName"; 
     param1.DbType = DbType.AnsiString; 
     param1.Size = 8000; 
     param1.Value = FirstName; 
     mycmd.Parameters.Add(param1); 


     SqlParameter param2 = new SqlParameter(); 
     param2.ParameterName = "@LastName"; 
     param2.DbType = DbType.AnsiString; 
     param2.Size = 8000; 
     param2.Value = LastName; 
     mycmd.Parameters.Add(param2); 

     int i = 0; 

     i = mycmd.ExecuteNonQuery(); 

     if (i > 0) 
     { 
      result = true; 
     } 
     else 
     { 
      result = false; 
     } 


    } 

    catch (Exception err) 
    { 
     Console.WriteLine(err.Message.ToString()); 

     return false; 
    } 

    finally 
    { 
     mycmd.Dispose(); 
     myconn.Close(); 
     myconn = null; 

    } 
    return result; 
} 

感謝

SBM

+1

所以你想讓我們爲你寫代碼? – 2010-01-03 05:52:33

+4

你正在考慮這個錯誤的方式。不要考慮你現有的代碼。想想你想測試什麼。那麼你想測試什麼? – Cellfish 2010-01-03 06:33:27

+1

單元測試對數據庫相關任務來說不是很好。 – 2010-01-03 08:49:53

回答

1

Cellfish是正確的。不要考慮代碼,想想方法應該做什麼。看也不看你的代碼,我會做測試的這種:

製備1-

lastName = "LastName" 
firstName = "FirstName" 

然後嘗試獲取與firstName和lastName用戶,並確保它不是已經存在。

2-執行

InsertUser(firstName, lastName) 

3-請檢查

  • 確保InsertUser返回true
  • 嘗試獲取與firstName和lastName用戶,並確保它的存在與正確的值。
+0

這測試了'真正'的返回路徑。要測試'錯誤'路徑,請嘗試插入已經在數據庫中的用戶。 – Pedro 2010-01-14 15:38:45

+0

你是對的!感謝精確度 – 2010-01-14 16:23:32