2013-05-06 66 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连接字符串不存在,并且您将收到空引用异常。