【发布时间】:2017-02-26 10:18:01
【问题描述】:
我是单元测试的新手,并且有以下代码:
public class PowerOf
{
public int CalcPowerOf(int @base, int exponent) {
if (@base == 0) { return 0; }
if (exponent == 0) { return 1; }
return @base * CalcPowerOf(@base, exponent - 1);
}
}
我首先为它编写的单元测试(使用 xUnit)是这个,但我不太确定这是否是正确的方法,或者我是否应该使用另一种模式? 我想知道这是否是将多组数据传递到“单元测试”的正确用法 - 因为我在 xUnit 的文档中没有看到任何文档或参考示例?
[Fact]
public void PowerOfTest() {
foreach(var td in PowerOfTestData()) {
Assert.Equal(expected, CalcPowerOf(@base, exponent));
}
}
public class TestData {
int Base {get;set;}
int Exponent {get;set;}
int ExpectedResult {get;set;}
}
public List<TestData> PowerOfTestData() {
yield return new TestData { Base = 0, Exponent = 0, TestData = 0 };
yield return new TestData { Base = 0, Exponent = 1, TestData = 0 };
yield return new TestData { Base = 2, Exponent = 0, TestData = 1 };
yield return new TestData { Base = 2, Exponent = 1, TestData = 2 };
yield return new TestData { Base = 5, Exponent = 2, TestData = 25 };
}
【问题讨论】:
标签: c# unit-testing xunit