C# 如果我不想使用testcase属性指定参数,如何执行参数化testcase?
如果我不知道执行期间将传递的参数,如何从Nunit控制台执行下面的代码C# 如果我不想使用testcase属性指定参数,如何执行参数化testcase?,c#,nunit,nunit-console,C#,Nunit,Nunit Console,如果我不知道执行期间将传递的参数,如何从Nunit控制台执行下面的代码 [TestCase] public void ExecuteString(string someValue) { Console.WriteLine(someValue); } 我知道我们应该以这种格式传递参数[TestCase(“Values”)]。但是如果我不确定参数是什么?您不能以这种方式使用TestCase属性,但是有一个TestCaseSource属性可以处理变量和
[TestCase]
public void ExecuteString(string someValue)
{
Console.WriteLine(someValue);
}
我知道我们应该以这种格式传递参数[TestCase(“Values”)]。但是如果我不确定参数是什么?您不能以这种方式使用TestCase属性,但是有一个TestCaseSource属性可以处理变量和运行时值 它的工作原理如下所示。这就是你要找的吗
[Test, TestCaseSource(typeof(string), nameof(SomeClass.someCases))]
public void Test(string someValue)
{
Console.WriteLine(someValue);
}
private class someClass
{
public static IEnumerable someCases
{
get
{
yield return
new TestCaseData("valuefornow");
yield return
new TestCaseData("valueforlater");
}
}
}
为什么不确定参数是什么?你是程序员,你在测试用例中定义它们。如果您不知道它们,那么运行使用它们的代码有什么用呢?参数是动态的。所以我应该能够在不知情的情况下执行它们。在上面的代码中,我只知道参数的类型是字符串类型。我想知道您对单元测试的概念是否有与大多数人相同的想法。如果您的代码应该处理不同的类型,请使用不同的类型设置测试用例。单元测试使用固定的值来查看代码是否给出了预期的结果。如果事先不确定输入,则无法预测输出,因此无法进行测试。(是的,在某些情况下可能需要使用随机值,但不是一般情况下)如果您添加更多实际代码,您的问题可能会更清楚。我怀疑您是否想要单元测试
控制台。Writeline
。如果我尝试回答这个问题,这将是一个很大的答案。但是,是否可以从Nunit控制台调用参数化的testcase,而不使用TestCaseAttribute指定可能的参数?