【问题标题】:TDD Unit test of ASP.NET WebformsASP.NET Webforms 的 TDD 单元测试
【发布时间】: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


【解决方案1】:

一般来说,您不希望在用户界面上使用 TDD。如果您在 UI 和业务逻辑之间保持清晰的分离,那么您可以更轻松地测试业务逻辑,这是更容易中断的部分。

可以使用其他测试技术来测试用户界面,尽管这仍然不太适合 TDD。

【讨论】:

  • 我没有在 UI 层使用 TDD。我正在尝试通过 TDD 技术创建业务逻辑层。它也是一个网络表单应用程序。我知道没有 TDD 我可以轻松实现它。
  • 但是您看,在这种情况下,您不需要指定您正在处理 Web 窗体项目,甚至不需要指定它是 ASP.NET。业务逻辑应该独立于您是否使用 ASP.NET。通过包含它是 ASP.NET 的事实,您让读者相信它是 ASP.NET很重要
  • 我同意并非常感谢您迄今为止的帮助。让我进一步编辑问题。
猜你喜欢
  • 2010-11-25
  • 2023-03-05
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 2015-04-27
相关资源
最近更新 更多