【问题标题】:IEnumerable<T> as a DataSource for a data driven testIEnumerable<T> 作为数据驱动测试的数据源
【发布时间】:2015-06-30 10:36:05
【问题描述】:

是否可以在 .Net 中创建使用IEnumerable&lt;T&gt; 作为DataSource 的数据驱动测试?

问题是:
我想测试一门课。它的行为略有不同,具体取决于它作为构造函数参数接收的 int 值。
并且有一个静态方法可以返回该构造函数参数的所有可能值的IEnumerable&lt;int&gt;

【问题讨论】:

  • 什么测试框架? NUnit?
  • 你见过 Moq 吗? github.com/Moq/moq4
  • @Daniel Earwicker Microsoft 的默认设置。
  • @Santhos 在这种情况下可以提供帮助吗?
  • 这是一个小费。我不能确定,你没有给我们太多信息。可以给我们看看代码吗?

标签: .net datasource ienumerable mstest data-driven-tests


【解决方案1】:

找到了解决办法。对它不是很满意,但它确实有效。

[DataSourceGenerator("source.csv")]
public class DataDrivenTests
{
    public TestContext TestContext { get; set; }

    [TestMethod]
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "source.csv", "source#csv", DataAccessMethod.Sequential)]
    //The source is generated automatically by DataSourceGenerator attribute
    public void DataDrivenTest()
    {
        //Here you can implement a data driven test of your own
    }
}

[AttributeUsage(AttributeTargets.Class)]
internal sealed class DataSourceGeneratorAttribute : Attribute
{
    public DataSourceGeneratorAttribute(string fileName)
    {
        var csvContent = GenerateCsvContent();

        File.WriteAllText(fileName, csvContent);
    }
    private string GenerateCsvContent()
    {
        //Here you can generate content for your csv
    }
}

【讨论】:

    猜你喜欢
    • 2010-11-16
    • 2023-03-05
    • 2012-11-05
    • 1970-01-01
    • 2014-10-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多