最终,您可以做的(根据 jflood.net 的评论)是将您的担忧分开。所以目前你有两个主要问题(你甚至可以进一步分解它,但我们也应该避免过度工程) - 向用户呈现数据并验证用户的输入。
您的 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);
}
请记住,在单元测试中,您只是在测试不同的逻辑流程。您不必测试任何输入,因此在这里我测试了使用给定错误电子邮件地址的错误验证和使用良好电子邮件地址的真实验证。
希望这可以帮助