Ano*_*use 57 nunit unit-testing
有人能告诉我,nunit不可能去:
[TestCase(new DateTime(2010,7,8), true)]
public void My Test(DateTime startdate, bool expectedResult)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我真的想把它放在datetime
那里,但它似乎不喜欢它.错误是:
属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式
我读过的一些文档似乎暗示你应该能够但我找不到任何例子.
Ron*_*ack 119
这是一个迟到的答案,但希望有价值.
您可以在TestCase
属性中将日期指定为常量字符串,然后DateTime
在方法签名中指定类型.
NUnit会自动DateTime.Parse()
对传入的字符串执行操作.
例:
[TestCase("01/20/2012")]
[TestCase("2012-1-20")] //same case as above in ISO format
public void TestDate(DateTime dt)
{
Assert.That(dt, Is.EqualTo(new DateTime(2012,01,20)));
}
Run Code Online (Sandbox Code Playgroud)
Sha*_*lde 43
我可能会使用像ValueSource属性这样的东西
public class TestData
{
public DateTime StartDate{ get; set; }
public bool ExpectedResult{ get; set; }
}
private static TestData[] _testData = new[]{
new TestData(){StartDate= new DateTime(2010,7,8), ExpectedResult= true}};
[Test]
public void TestMethod([ValueSource("_testData")]TestData testData)
{
}
Run Code Online (Sandbox Code Playgroud)
这将为_testData集合中的每个条目运行TestMethod
另一种选择是使用更冗长的方法.特别是如果我不一定知道前面,DateTime()
给定的字符串输入产生什么样的(如果有的话).
[TestCase(2015, 2, 23)]
[TestCase(2015, 12, 3)]
public void ShouldCheckSomething(int year, int month, int day)
{
var theDate = new DateTime(year,month,day);
....
}
Run Code Online (Sandbox Code Playgroud)
...注意TestCase支持最多3个参数,所以你需要更多,考虑如下:
private readonly object[] testCaseInput =
{
new object[] { 2000, 1, 1, true, "first", true },
new object[] { 2000, 1, 1, false, "second", false }
}
[Test, TestCaseSource("testCaseInput")]
public void Should_check_stuff(int y, int m, int d, bool condition, string theString, bool result)
{
....
}
Run Code Online (Sandbox Code Playgroud)
您应该使用记录的TestCaseData类:http://www.nunit.org/index.php?p = testCaseSource&r = 2.5.9
除了指定预期结果外,例如:
new TestCaseData( 12, 4 ).Returns( 3 );
Run Code Online (Sandbox Code Playgroud)
您还可以指定预期的例外等:
new TestCaseData( 0, 0 )
.Throws(typeof(DivideByZeroException))
.SetName("DivideByZero")
.SetDescription("An exception is expected");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19735 次 |
最近记录: |