2013-05-06 65 views
1

正在做一個單元測試,測試我的連接字符串。這是我對我的測試方法的代碼:System.NullReferenceException嘗試從單元測試項目讀取配置文件時

[TestMethod()] 
    public void connectionStringTest() 
    { 
     //string expected = null; // TODO: Initialize to an appropriate value 
     string actual; 

     string expected = " User Id=ownitsbio;Password=ownitsbio;Data Source=preprod"; 
     actual = ConfigurationManager.ConnectionStrings["ownitsbio"].ConnectionString; 

     Assert.AreEqual(expected, actual); 
     //Assert.Inconclusive(expected); 

    } 

我得到這個錯誤System.NullReferenceException: Object reference not set to an instance of an object。可能是什麼問題呢??請幫忙!

+6

這可能是最基本的調試問題,使用調試器來檢查「X.Y.Z」行的哪一部分評估爲「null」。 – Jon 2013-05-06 13:08:15

+0

@jon我同意,但爲了防禦,新手測試人員並不總是很清楚,將讀取的配置文件不是來自被測系統的配置文件,而是測試項目下的配置文件。 ;)(注意:這是說,不是「單元測試」,而是集成測試,因爲它依賴於單個代碼單元的純邏輯之外的某些東西。請注意保持兩種類型的測試分開,最好在兩個獨立的項目中)。 – Kjartan 2013-05-06 14:02:50

回答

3

將App.config添加到您的測試項目中,並在其中包含連接字符串。

4

您的測試配置文件似乎不存在連接字符串ownitsbio

如果您沒有,請創建一個並添加此連接字符串。

1

測試框架需要在其配置文件(web.config或app.config)中進行設置。測試框架通常不使用作爲程序一部分的配置文件。因此,當您嘗試讀取ConnectionString屬性時,ownitsbio連接字符串不存在,並且您將收到空引用異常。