看了Spirit(斯比瑞特)的 《在Dotnetnuke4.5中进行NUnit》后我在VS2005中对我以前做的一个部门管理的小模块进行了一下测试(模块数据很简单,主要由Id、部门名称、部门类型、上级部门等字段构成),我测试了一下Add这个功能,但是运行出错,提示: 测试方法 DataProviderTest.SqlDataProviderTest.AddDeptTest 引发异常: System.TypeInitializationException: “gdlmo.DNN.Modules.Dept.Data.DataProvider”的类型初始值设定项引发异常。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。
我已将web.config的内容copy到app.config中,并在
1
[ClassInitialize()]
2
public static void MyClassInitialize(TestContext testContext)
3
{
4
DotNetNuke.Common.Globals.HostMapPath = "D:\\web\\dnn4\\Website" ;//System.IO.Directory.GetCurrentDirectory() + @"";
5![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6 }
测试代码如下
1
[TestMethod()]
2
public void AddDeptTest()
3
{
4
//SqlDataProvider target = new SqlDataProvider();
5![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
int ModuleId = 0; // TODO: 初始化为适当的值
7![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
string Name = "交通部"; // TODO: 初始化为适当的值
9![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
int DeptType = 1; // TODO: 初始化为适当的值
11![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
bool IsActive = true; // TODO: 初始化为适当的值
13![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
int SuperiorDeptId = 0; // TODO: 初始化为适当的值
15![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
int expected = 0;
17
int actual;
18![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
actual = DataProvider.Instance().AddDept(ModuleId, Name, DeptType, IsActive, SuperiorDeptId);
20![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
Assert.AreEqual(expected, actual, "gdlmo.DNN.Modules.Dept.Data.SqlDataProvider.AddDept 未返回所需的值。");
22
Assert.Inconclusive("验证此测试方法的正确性。");
23
}
24![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
有那位达人能告诉我如何解决吗?