我是編程和c#的新手,並且已經被分配了爲遺留代碼編寫單元測試的任務,以準備進行大的數據庫更改。單元測試WinForms
我在單元測試中讀得越多,我對自己的方法就越懷疑。
您將如何處理爲以下內容寫入單元測試? 目前我只是單元測試我的數據訪問層方法,確保他們返回結果?但顯然單元測試應該獨立於任何外部環境?
當幾乎所有東西都在調用數據庫或存儲過程時,如何測試我的應用程序?
我的表單代碼:
public void button1_Click(object sender, EventArgs e)
{
LoadAllCountries()
}
private static void LoadAllCountries()
{
List<nsHacAppMod.ViewCountryInfo> oReturn = moBusinessServices.GetAllCountries();
}
我的數據訪問層這個代碼
public List<nsAppMod.ViewCountryInfo> GetAllCountries()
{
List<nsAppMod.ViewCountryInfo> oReturn;
var oResult = from c in moDataContext.ViewCountryInfos
select c;
oReturn = oResult.ToList();
return oReturn;
}
我目前的單元測試,這是可以接受的?如果不是,你會測試什麼?
[Test]
public void LoadAllCountries()
{
hac.CatalogSamples cs = new hac.CatalogSamples();
var countries = cs.GetAllCountries().count();
Assert.GreaterOrEqual(countries 0);
}
當你運行你測試你得到了什麼..這更是一個自以爲是的問題,因爲不是每個人都寫'單元測試Code'的同樣的方式..赫克我不知道有多少開發人員甚至每天寫它無論如何我沒有看到任何錯誤,但我猶豫是否在我的產品環境中的'斷言'編碼親自你GOOGLE和最佳實踐關於單元測試..?我會在做單元測試時寫三種類型的測試'負面的,肯定的和例外的# – MethodMan 2014-12-02 20:26:55
單元測試的重要之處在於你試圖「證明」某些東西。你目前的測試「證明」什麼? ('cs.GetAllCountries'將返回0個或更多記錄)這些信息是否有用? – 2014-12-02 20:26:56
您需要爲您的數據訪問方法進行集成測試(測試使用外部資源(即數據庫)),然後您的單元測試只是確保在正確位置調用集成測試方法 – reggaeguitar 2014-12-02 20:27:30