【发布时间】:2014-02-18 19:00:57
【问题描述】:
我是 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?
}
还有一个问题,我正在阅读有关嘲笑的内容。是在模拟代理模式的另一个名称吗?
【问题讨论】:
-
如果你不需要模拟第 1 个案例,我认为你需要模拟第 2 个案例。但这取决于。能否提供测试方法?例如,如果您使用
Membership类(在 ASP.NET 帐户控制器中经常使用),则很难对其进行测试(因为它是静态的)。如果是这样,我建议从不同的角度开始:-) -
好吧,我没有使用会员等级。我有自己的自定义登录系统。您能否为我提供数字 1 的详细答案。如何为 Authenticate_UserId_or_Password_ShouldNotbeNull() 创建单元测试
-
感谢约翰改进问题。
标签: c# asp.net unit-testing mocking tdd