繁体   English   中英

单元测试 Dapper/SqlConnection 查询

[英]Unit testing Dapper/SqlConnection queries

我有以下服务,我想为其创建单元测试

public class Service
{
    public async Task<IEnumerable<Person>> GetPeople(string connString)
    {
        var conn = new SqlConnection(connString);
        await conn.OpenAsync();
        return await conn.QueryAsync<Person>("SELECT * FROM People");
    }

    public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
}

我将传递一个连接字符串来连接到数据库。 我知道我需要创建一个内存数据库,然后创建 db 结构,然后创建表,然后插入一些数据,然后使用该服务进行查询。

我尝试使用 InMemoryDatabase 但这似乎是针对 EF Code

我的问题是如何为上述将在内存中运行的代码创建单元测试,因为这也将运行 azure。

您必须进行一些重构才能正确地对该类进行单元测试。

  1. connString作为构造函数参数传递,它不应该是接口的一部分。
  2. 使用GetPeople方法提取接口IService
  3. 要么使用从内存集合中返回人员序列的替代实现,要么使用Moq类的框架来配置IService.GetPeople的预期行为以返回Person序列

暂无
暂无

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

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