使用VS2012的ASP.NET单元测试

时间:2013-06-05 20:01:01

标签: asp.net unit-testing visual-studio-2012

我正在拆分并重新组建一个大型网站,并希望借此机会在网站重新创建时进行一些测试驱动的开发。我遇到的问题是如何。我需要测试的很多项目都处理用户登录时设置的会话变量(或其他变量)。但是如果我正在测试单个页面,我就不会登录。

例如:

[TestMethod()]
[HostType("ASP.NET")]
[UrlToTest("http://localhost:64769/UsersDetail.aspx")]
public void GetCompanyId_Test()
{
    var testID = GetCompanyID();

    Assert.AreEqual("123456789", testID);

}

现在,问题是为了使GetCompanyID工作,它必须具有在登录时设置的变量。

这可能吗?我是否必须以某种方式模拟数据?

由于

1 个答案:

答案 0 :(得分:1)

您可能必须更改GetCompanyID函数以使用生命系统中的会话填充的一些变量,以及单元测试系统中的testsetup。唉,你不能在ASP.NET中模拟HttpSessionState - 见这里:How do I mock/fake the session object in ASP.Net Web forms?

另一个想法是在testsetup中实际执行loginaction。