如何在DNN4下使用VS2005进行单元测试???
看了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
2 public static void MyClassInitialize(TestContext testContext)
3 {
4 DotNetNuke.Common.Globals.HostMapPath = "D:\\web\\dnn4\\Website" ;//System.IO.Directory.GetCurrentDirectory() + @"";
5
6 }
测试代码如下
1 [TestMethod()]
2 public void AddDeptTest()
3 {
4 //SqlDataProvider target = new SqlDataProvider();
5
6 int ModuleId = 0; // TODO: 初始化为适当的值
7
8 string Name = "交通部"; // TODO: 初始化为适当的值
9
10 int DeptType = 1; // TODO: 初始化为适当的值
11
12 bool IsActive = true; // TODO: 初始化为适当的值
13
14 int SuperiorDeptId = 0; // TODO: 初始化为适当的值
15
16 int expected = 0;
17 int actual;
18
19 actual = DataProvider.Instance().AddDept(ModuleId, Name, DeptType, IsActive, SuperiorDeptId);
20
21 Assert.AreEqual(expected, actual, "gdlmo.DNN.Modules.Dept.Data.SqlDataProvider.AddDept 未返回所需的值。");
22 Assert.Inconclusive("验证此测试方法的正确性。");
23 }
24
2 public void AddDeptTest()
3 {
4 //SqlDataProvider target = new SqlDataProvider();
5
6 int ModuleId = 0; // TODO: 初始化为适当的值
7
8 string Name = "交通部"; // TODO: 初始化为适当的值
9
10 int DeptType = 1; // TODO: 初始化为适当的值
11
12 bool IsActive = true; // TODO: 初始化为适当的值
13
14 int SuperiorDeptId = 0; // TODO: 初始化为适当的值
15
16 int expected = 0;
17 int actual;
18
19 actual = DataProvider.Instance().AddDept(ModuleId, Name, DeptType, IsActive, SuperiorDeptId);
20
21 Assert.AreEqual(expected, actual, "gdlmo.DNN.Modules.Dept.Data.SqlDataProvider.AddDept 未返回所需的值。");
22 Assert.Inconclusive("验证此测试方法的正确性。");
23 }
24
有那位达人能告诉我如何解决吗?