C# 无法在console上打印。测试方法上的writeline

C# 无法在console上打印。测试方法上的writeline,c#,mstest,C#,Mstest,有人知道为什么这个永远不会打印吗?我可能忽略了一些简单的东西,但出于某种原因,我无法在测试方法中打印任何内容,这和console.write似乎都不起作用 是否有方法打印测试方法中的任何内容(如有) [TestMethod] public void TestMethodAddUser() { int [] resul = new int[1]; resultado = gestor.addUser("El Pelucas", "12345", "e

有人知道为什么这个永远不会打印吗?我可能忽略了一些简单的东西,但出于某种原因,我无法在测试方法中打印任何内容,这和console.write似乎都不起作用

是否有方法打印测试方法中的任何内容(如有)

[TestMethod]
public void TestMethodAddUser()
    {

        int []  resul = new int[1]; 

        resultado = gestor.addUser("El Pelucas", "12345", "elpelucassabe@gmail.com");
        Console.WriteLine(resul[1].ToString());

        try
        {

            if (resul[1] > 0)
            {

                switch (resul[1])
                {

                    case -1:

                        Console.WriteLine("Username taken.");

                        break;

                    case -2:

                        Console.WriteLine("Email address taken.");

                        break;

                }

                Console.WriteLine("User added.");
                Assert.IsTrue(true);


            }

        }
        catch (Exception ex)
        {

            Assert.Fail(ex.ToString());

        } 

    }

您的代码有多个问题

  • 您没有为数组指定任何值
  • 您已经创建了一个包含1个元素的数组&您正在尝试使用该数组的第2个元素
  • 您使用了错误的case条件
运行这个

public void TestMethodAddUser() 
{
    int[] resul = new int[1];
    resul[0] = 1;

    Console.WriteLine(resul[0].ToString());

    try 
    {
        if (resul[0] > 0) 
        {
            switch (resul[0]) 
            {
                case 1:
                    Console.WriteLine("Username taken.");
                    break;

                case 2:
                    Console.WriteLine("Email address taken.");
                    break;
            }

            Console.WriteLine("User added.");
        }

    }
    catch (Exception ex) 
    {

    }
}

您的开关案例将永远不会执行,因为它们是负的,如果条件为真,则您将为正。并为结果[1]赋值

因此,将其编辑为:

int input;
if (!int.TryParse(Console.ReadLine(), out input);
{
    Console.WriteLine("Invalid number");
}
else 
{
    resul[1] = input;
}    
if (resul[1] > 0) //use resul[1]<1 for negative switch case
{
     switch (resul[1])
     {
         case 1:    
            Console.WriteLine("Username taken.");    
            break;    
         case 2:    
            Console.WriteLine("Email address taken.");    
            break;    
     }    
     Console.WriteLine("User added.");
     Assert.IsTrue(true);
}
int输入;
如果(!int.TryParse(Console.ReadLine(),out-input);
{
Console.WriteLine(“无效号码”);
}
其他的
{
结果[1]=输入;
}    

如果(结果[1]>0)//使用结果[1]你应该考虑使用TestFieldor或Trace.xxxx方法来代替测试期间的日志记录…一般来说,你会把消息作为第二个/第三个参数的代码< Acth.XXXX < /Cord>方法,这样你就知道什么是错误的并验证假设……thanks@X-技术只是针对一些不同的问题:)只是为了澄清,数组将始终具有来自方法gestor的-1、-2或n。但是非常感谢!