我在NUnit 2.6.1上使用TestCaseSource来测试具有不同对象类构造函数参数的相同Assert.
我的意思是,
[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")
};
Run Code Online (Sandbox Code Playgroud)
好的,一切运行正常,但这是我在NUnit控制台上收到的结果:
- CheckMale
- CheckMale(人)
- CheckMale(人)
- CheckMale(人)
所以我不知道每次迭代执行的测试是什么,如果其中任何一个失败,我就无法得到失败的测试.
我的问题是:有没有办法用注释或类似的东西来识别传递给测试的参数是什么?(在TestCaseSource属性方式中做)
谢谢.
Ily*_*nov 11
如果使用"本机"NUnitor 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")
};
}
Run Code Online (Sandbox Code Playgroud)
人类可能是这样的:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
结果窗口如下所示:

我还在你可能使用的原生NUnit测试运行器上检查过它.它还可以很好地显示人物:

| 归档时间: |
|
| 查看次数: |
6666 次 |
| 最近记录: |