我想做这样的事情
[Test]
public void Test([Values(new DateTime(2010, 12, 01),
new DateTime(2010, 12, 03))] DateTime from,
[Values(new DateTime(2010, 12, 02),
new DateTime(2010, 12, 04))] DateTime to)
{
IList<MyObject> result = MyMethod(from, to);
Assert.AreEqual(1, result.Count);
}
但我收到以下有关参数的错误
属性参数必须是
常量表达式、typeof 表达式
或数组创建表达式
有什么建议么?
UPDATE:关于 NUnit 2.5 中参数化测试的好文章
http://www.pgs-soft.com/new-features-in-nunit-2-5-part-1-parameterized-tests.html http://www.pgs-soft.com/new-features-in-nunit-2-5-part-1-parameterized-tests.html
作为膨胀单元测试的替代方法,您可以使用 TestCaseSource 属性来卸载 TestCaseData 的创建。
TestCaseSource 属性允许您在类中定义将由 NUnit 调用的方法,并且在该方法中创建的数据将传递到您的测试用例中。
NUnit 2.5 中提供了此功能,您可以了解更多信息...
[TestFixture]
public class DateValuesTest
{
[TestCaseSource(typeof(DateValuesTest), "DateValuesData")]
public bool MonthIsDecember(DateTime date)
{
var month = date.Month;
if (month == 12)
return true;
else
return false;
}
private static IEnumerable DateValuesData()
{
yield return new TestCaseData(new DateTime(2010, 12, 5)).Returns(true);
yield return new TestCaseData(new DateTime(2010, 12, 1)).Returns(true);
yield return new TestCaseData(new DateTime(2010, 01, 01)).Returns(false);
yield return new TestCaseData(new DateTime(2010, 11, 01)).Returns(false);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)