C# 如何在windows窗体c中对此类代码进行单元测试#

C# 如何在windows窗体c中对此类代码进行单元测试#,c#,.net,visual-studio,winforms,unit-testing,C#,.net,Visual Studio,Winforms,Unit Testing,其windows窗体的公共验证部分代码单元测试步骤的常见方法是。 排列->动作->断言 在我看来,我应该用单独的方法编写代码来验证。该方法将返回true或false。它易于检查和单元测试。 问候 public int validation() { int flag = 0; Regex Rx = new Regex(@"^[\p{L} \.'\-]{0,20}$"); Regex Rx1 = new Regex(@"^[\p{L} \.'\-]{0,20}$");

其windows窗体的公共验证部分代码

单元测试步骤的常见方法是。 排列->动作->断言 在我看来,我应该用单独的方法编写代码来验证。该方法将返回true或false。它易于检查和单元测试。 问候

public int validation()
{
    int flag = 0;
    Regex Rx = new Regex(@"^[\p{L} \.'\-]{0,20}$");
    Regex Rx1 = new Regex(@"^[\p{L} \.'\-]{0,20}$");
    Regex Rx2 = new Regex(@"^[0-9]{10}$");
    if (name.Text=="")
    {
        name.Focus();
        errorProvider1.SetError(name, MessageBox.Show("enter your name", 
            "error", MessageBoxButtons.OK, MessageBoxIcon.Error).ToString());
        flag = 1;
    }
    else if (fathername.Text == "")
    {
        fathername.Focus();
        errorProvider1.SetError(name, MessageBox.Show("Enter your father name", 
            "error", MessageBoxButtons.OK, MessageBoxIcon.Error).ToString());
        flag = 1;
    }
}

要编写有效的单元测试,首先您的代码应该是可测试的。为了首先获得一段可测试的代码,您应该将业务与UI分开。通过这种方式,您可以通过单元测试来测试您的业务。另外,如果您使用MVVM模式,您可以独立于您的UI技术来测试您的UI逻辑。

谢谢您的代码。。但是我在Regex部分中遇到了错误。。甚至我添加了表单code1的程序集引用<代码>errorProvider1.SetError(名称,MessageBox?!)?2.那些正则表达式的作用是什么?3.请邮寄
public bool ValidateInput(string input)
{
  Regex Rx = new Regex(@"^[\p{L} \.'\-]{0,20}$");
  Match match = rx.Match(input);
  if(match.Success) return true;
  return false;
}
// To call the method.
public void Testing(){
  string userName = "your user name";
  if(ValidateInput(userName))
    MessageBox.Show("Your username incorrect.");
  else{
    // Todo something.
  }
}