我想了解TDD,但我見過的所有例子都顯示了add(),substract()等方法,我知道如何通過unittest測試。但是如何測試一個沒有參數的方法?如何爲沒有參數的方法編寫testmethods?
例如,您會如何爲此方法編寫測試方法?
public List<string> testmethod()
{
List<string> ret = new List<string>();
using (SqlConnection conn = new SqlConnection(constring))
using (SqlCommand cmd = conn.CreateCommand())
{
SqlDataReader reader;
cmd.CommandText = "select * from users";
conn.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
ret.Add(reader["name"].ToString());
}
conn.Close();
}
return ret;
}
我的意思是,你有什麼要測試?
測試它是否返回帶有字符串的列表? – AssaultingCuccos 2014-10-20 12:12:11
通常情況下,您會注入一個IDbConnection,然後對其進行模擬以確保此方法與其正確交互。或者你將有代碼來設置數據庫並測試它是否返回了正確的數據,但這是集成測試,而不是單元測試。 – juharr 2014-10-20 12:15:01
至於任何方法(不管事實上它接受參數還是返回),這個想法是確保該方法完成它應該做的事情。在你的情況下,確保它從db讀取用戶名。 – 2014-10-20 12:15:39