c# - NUnit 测试用例源

标签 c# nunit testcasesource

我正在尝试使用 TestCaseSource 属性。一个问题:当 sourceName 字符串无效时,测试只是被忽略而不是失败。如果 source 方法被重命名,sourceName 字符串没有得到更新,这将非常糟糕,然后您将失去测试提供的覆盖范围。有没有办法改变 NUnit 的行为,以便在 sourceName 无效时测试失败?

最佳答案

这在 NUnit 2.6.2 中得到解决。该属性有一个新的构造函数,该构造函数采用 Type(必须实现 IEnumerable);它“被推荐优先于其他形式使用,因为它不使用字符串来指定数据源,因此更容易重构。” (来自 documentation 。)

这确实需要您的测试运行器支持最新的 NUnit。

一个非常基本的示例(有关详细信息,请参阅上面的文档链接):

public class TestDataProvider : IEnumerable
{
    public IEnumerator GetEnumerator()
    {
        return new List<int>{ 2, 4, 6 }.GetEnumerator();
    }
}

[TestFixture]
public class MyTests
{
    [TestCaseSource(typeof(TestDataProvider))]
    public void TestOne(int number)
    {
        Assert.That(number % 2, Is.EqualTo(0));
    }
}

关于c# - NUnit 测试用例源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11722888/

相关文章:

c# - ComboBox 填充 DataSource 很慢

c# - 访问 SearchDescriptor 属性以进行测试

nunit - 在 NUnit 中延迟加载 TestCaseSource

testing - SpecFlow - 如何使用 NUnits TestCaseSource 属性等数据驱动测试?

c# - asp.net 中可调整大小的 ImageButton 或 Button

c# - WPF跨线程消息框不阻塞主线程输入

c# - 将 ListBox 的 ItemsSource 设置为其包含类的属性

nunit - 在 TeamCity 中通过 Console Runner 使用 NUnit 3 时找不到 ServiceStack 许可证

c# - 当有 "this"参数时AssertWasCalled