我制作了测试服,如下所示。
[TestCase(12,4,3)]
[TestCase(m,n,o)]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}我传递变量m= 10,n=2和o= 5。
但是第二个测试用例是不可访问的。它引发以下错误。属性参数必须是属性参数类型的常量表达式、类型表达式或数组创建表达式
如何在测试用例中传递变量名而不是值。
发布于 2015-05-14 12:16:03
不幸的是,除非变量是常量,否则不能将变量传递给测试用例。
发布于 2015-05-15 03:12:51
正如nickmkk所提到的,变量必须是常数。
如果不需要,则不需要传递第二个属性。如果您这样做了,您可以在测试和属性中通过相同的类型。它将按顺序读取参数。
[TestCase(12, 4, 3)]
[TestCase(10, 5, 1)]
public void DivideTest(int n, int d, int q)
{
Console.WriteLine("n={0}, d={1}, q={2}", n, d, q);
Assert.AreEqual(q, n / d);
}打印 第一轮:预期:1,但为:2 在NUnit.Framework.Assert.That(Object message,IResolveConstraint表达式,IResolveConstraint表达式,String划一消息,Object[]args)的NUnit.Framework.Assert.AreEqual( in 32预期,in 32实际)在Test.Test.DivideTest(in 32 n,in 32 d,in 32 q)的ImplicitVsExplicitTest.cs中:第22行n=10,d=5,q=1 第二轮n=12,d=4,q=3
https://stackoverflow.com/questions/30237110
复制相似问题