如何在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![]()
[ClassInitialize()]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![]()
[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

有那位达人能告诉我如何解决吗?

浙公网安备 33010602011771号