繁体   English   中英

ASP.NET Effort CsvLoader 不返回数据

[英]ASP.NET Effort CsvLoader does not return data

我将 Entity Framework 6 与 Code First 一起使用,我想模拟我的 DbContext 进行单元测试。 因为我需要大量的单元测试测试数据,所以我想使用 Entity Framework Effort ( https://entityframework-effort.net/ ) 从 csv 文件加载它们。

我没有收到任何错误,但我也没有从 csv 文件中获取任何数据。 我得到的只是一个没有数据的 DbContext(代码中的 FapContext)。

你有什么建议可以解决我的问题吗?

使用 NUnit 进行单元测试:

    private FapContext context;
    private IUnitOfWork unitOfWork;
    private IDataLoader csvLoader;
    private IDataLoader dataLoader;

    [SetUp]
    public void SetUp()
    {
        this.csvLoader = new CsvDataLoader(@"C:\path\TestData\CSV-TestData");
        this.dataLoader = new CachingDataLoader(this.csvLoader, false);
        DbConnection connection = DbConnectionFactory.CreateTransient(this.dataLoader);

        try
        {
            this.context = new FapContext(connection);
            this.context.Database.CreateIfNotExists();
        }
        catch (Exception e)
        {
            Debug.Print(e.GetType().FullName);
            throw;
        }

        this.unitOfWork = new UnitOfWork(this.context);
    }

    [Test]
    public void ShouldReturnData()
    {
        // Arrange
        List<State> states = this.context.States.ToList();

        // Act

        // Assert
        Assert.IsNotNull(states);           // passes
        Assert.IsTrue(states.Count > 0);    // don't pass
    }

CSV 文件:

ID,StateGroupID,Name,Description,CreatedAt,ChangedAt,RowVersion
"187968CE-0489-4A57-81F4-0BECDF9CC005","5FBAD179-68F5-46D2-A0A6-82516A3F2E4D","APPROVED","Approved material",,,
"222E365D-A8D7-4DFF-8807-18EC85481FD8","AED80358-D2A3-4CC9-A7E5-EA1C8931C27A","Running",,,,
"8433F457-31F1-40D4-AF78-2058415407F7","28E828D7-6B5B-9BEC-928D-101DEB38B4C5","Pending",,,,

我知道这个问题已经很老了,但我最近在向旧的 EF6 项目添加测试时遇到了这个问题。

OP 没有记录他们的 CSV 文件名。 我猜你的文件名与你的 DBContext 的属性名不完全匹配。 您需要匹配属性名称,而不是类名称。 我假设您的复数形式因模型/表到属性而异。 示例:我猜您的 CSV 文件名类似于State.csv而您的 DbContext 属性名称是States

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM