C# ASP.NET Webforms的TDD单元测试

C# ASP.NET Webforms的TDD单元测试,c#,asp.net,unit-testing,mocking,tdd,C#,Asp.net,Unit Testing,Mocking,Tdd,我是TDD的新手,我正在阅读许多书来掌握TDD的概念 如果有人能指导我,我没有什么问题。假设我正在为登录身份验证创建一个单元测试,我是否必须先插入一个虚拟用户,然后根据插入的测试用户测试方法 为了测试登录身份验证的业务逻辑,我想到了以下几种测试方法: 1- Authenticate_UserId_or_Password_ShouldNotbeNull() 2- Authenticate_UserId_And_Password_ShouldreturnValidUser() 对于#1,我创建了

我是TDD的新手,我正在阅读许多书来掌握TDD的概念

如果有人能指导我,我没有什么问题。假设我正在为登录身份验证创建一个单元测试,我是否必须先插入一个虚拟用户,然后根据插入的测试用户测试方法

为了测试登录身份验证的业务逻辑,我想到了以下几种测试方法:

1- Authenticate_UserId_or_Password_ShouldNotbeNull()

2- Authenticate_UserId_And_Password_ShouldreturnValidUser()
对于#1,我创建了一个测试方法:

[Test]
public void Authenticate_UserId_or_Password_ShouldNotbeNull()
{

LoginService login = new LoginService();
string strUserId="UserIdTest";
string strPassword="PasswordTest";

login.Authenticate(strUserId, strPassword);

// What assert method should I use to test it? 

}

还有一个问题,我在读关于嘲弄的书。模拟是代理模式的另一个名称吗

通常,您不希望在用户界面上使用TDD。如果您在UI和业务逻辑之间保持干净的分离,那么您可以更容易地测试业务逻辑,而这一部分很可能会中断


其他测试技术可用于测试用户界面,尽管这仍然不太符合TDD。

在第1种情况下,您不需要模拟,在第2种情况下,我认为您需要模拟。但这要视情况而定。你能提供测试的方法吗?例如,如果您正在使用
成员资格
类(在ASP.NET帐户控制器中经常使用),则很难对其进行测试(因为它是静态的)。如果是这样的话,我建议从另一个角度开始:-)我没有使用会员制课程。我有自己的自定义登录系统。你能给我一号的详细答案吗。我如何为Authenticate\u UserId\u或\u Password\u shouldbenull()创建单元测试谢谢John改进了这个问题。我没有在UI层使用TDD。我试图通过TDD技术创建一个业务逻辑层。它也是一个网络表单应用程序。我知道如果没有TDD,我可以很容易地实现它。但是你看,在这种情况下,你不需要指定你正在处理一个Web表单项目,甚至不需要指定它是ASP.NET。业务逻辑应该独立于您是否使用ASP.NET。通过加入ASP.NET这一事实,你让读者相信它是ASP.NET很重要。我同意,并且非常感谢你迄今为止的帮助。让我进一步编辑这个问题。