C# 无法在console上打印。测试方法上的writeline
有人知道为什么这个永远不会打印吗?我可能忽略了一些简单的东西,但出于某种原因,我无法在测试方法中打印任何内容,这和console.write似乎都不起作用 是否有方法打印测试方法中的任何内容(如有)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
[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。但是非常感谢!