gpt4 book ai didi

c# - WebForm 的 NUnit 测试用例

转载 作者:行者123 更新时间:2023-11-30 18:37:45 25 4
gpt4 key购买 nike

我是 asp、C#、nunit 的新手。我正在尝试为一个没有任何业务逻辑的简单 Web 表单编写(做我的家庭作业/作业)nunit 测试用例。

Web 表单有 4 个文本框(姓名、电子邮件地址、密码、电话号码),单选列表,下拉列表(性别)。该表单仅验证数据并将其他页面中的数据显示为输出文本(标签)。验证只是电子邮件、电话的正则表达式验证。名称和密码的长度验证。性别的必填字段验证。

请建议我如何为这个网络表单编写 NUnit 测试用例

例如,如果有一个计算阶乘的方法,我首先使用代码中给出的参数调用该方法(例如:4)。它返回我 4!进入变量“结果”(即结果现在有 24 个)。然后我会调用 AssertEquals(24,result)

因此,对于 Web 表单,它需要用户输入。代码中未给出输入。AssertEquals 的参数是什么

谢谢,

最佳答案

最终您可以做的(根据 jflood.net 的评论)是分离您的关注点。因此,目前您有 2 个主要问题(您甚至可以将其进一步分解,但我们也应避免过度工程化)- 向用户呈现数据并验证用户的输入。

您的 ASP.NET WebForm 代码处理问题 #1。为了将验证问题分离出来,您应该创建一个新的验证类来处理验证逻辑。有点像

public class Validator
{
public bool ValidateEmail(string email)
{
bool valid = false;
//Run RegEx validation and set the valid flag
return valid;
}
}

现在在您的页面加载中您可以使用这个新类

 protected void Page_Load(object sender, EventArgs e)
{
Validator validator = new Validator();
string email = Request.Form["EmailInput"];
bool isEmailValid = validator.ValidateEmail(email);

if (isEmailValid)
Response.Write("Email is valid");
}

请注意,这是一些伪代码,因为这是作业,我不想输入完整的解决方案。

现在您已将验证问题分离到它自己的类中。这使得它更容易理解,也更容易进行单元测试。

您现在需要为 Validator 类编写单元测试,特别是在本例中为 ValidateEmail。

举个例子

  [Test]
public void ValidateGoodEmail()
{
Validator validator = new Validator();
bool shouldBeTrue = validator.ValidateEmail("test@test.com");

Assert.AreEqual(true, shouldBeTrue);
}

[Test]
public void ValidateBadEmail()
{
Validator validator = new Validator();
bool shouldBeFalse = validator.ValidateEmail("test@.com");

Assert.AreEqual(false, shouldBeFalse);
}

请记住,在单元测试中,您只是在测试不同的逻辑流程。您不必测试任何输入,所以在这里我测试了使用给定的错误电子邮件地址的错误验证和使用良好电子邮件地址的真实验证。

希望对你有帮助

关于c# - WebForm 的 NUnit 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com