我在 NUnit 2.6.1 上使用 TestCaseSource 来测试具有不同对象类构造函数参数的相同断言。
I mean,
[Test, TestCaseSource("myConstructorsForMale")}
public void CheckMale(Person p)
{
Assert.That(p.IsMale);
}
static Person[] myConstructorsForMale =
{
new Person("John"),
new Person(isMale=true),
new Person("Doe")
};
好的,一切运行正常,但这是我在 NUnit 控制台上收到的结果:
所以我不知道每次迭代执行的测试是什么,如果其中任何一个失败,我无法知道失败的测试是什么。
我的问题是:
有什么方法可以通过注释或类似的内容来识别传递给测试的参数是什么? (以 TestCaseSource Attribute 方式执行)
Thanks.
如果使用“原生”NUnitor锐锐 http://www.jetbrains.com/resharper/作为测试运行者你可以覆盖ToString
方法,以便您拥有良好的 Person 定义。
例如,您的测试代码可能如下所示:
public class PersonTests
{
[Test, TestCaseSource("myConstructorsForMale")]
public void CheckMale(Person p)
{
Assert.That(p.IsMale);
}
static Person[] myConstructorsForMale =
{
new Person("John"),
new Person{IsMale=true},
new Person("Doe")
};
}
Person 类可能是这样的:
public class Person
{
public Person(string name)
{
this.Name = name;
}
public Person() { }
public string Name { get; set; }
public bool IsMale { get; set; }
public override string ToString()
{
return string.Format("Name:{0};IsMale:{1}", Name, IsMale);
}
}
The result window will look like this:
I also checked it on native NUnit test runner, which you probably use. It also displays Persons nicely:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)