相关疑难解决方法(0)

单元测试Dapper与内联查询

我知道有几个类似于我的问题.

但我不认为上述两个问题都有明确的答案符合我的要求.

现在我开发了一个新的WebAPI项目,并在WebAPI项目和DataAccess技术之间进行了划分.我没有问题测试Controller for WebAPI因为我可以模拟数据访问类.

但对于DataAccess类来说,这是一个不同的故事,因为我在其中使用Dapper内联查询,我有点困惑,我如何通过使用单元测试来测试它.我问了一些朋友,他们更喜欢做集成测试而不是单元测试.

我想知道的是,是否可以对使用Dapper和Inline查询的DataAccess类进行单元测试.

假设我有一个这样的类(这是一个通用的存储库类,因为很多代码都有类似的查询按表名和字段区分)

public abstract class Repository<T> : SyncTwoWayXI, IRepository<T> where T : IDatabaseTable
{
       public virtual IResult<T> GetItem(String accountName, long id)
       {
            if (id <= 0) return null;

            SqlBuilder builder = new SqlBuilder();
            var query = builder.AddTemplate("SELECT /**select**/ /**from**/ /**where**/");

            builder.Select(string.Join(",", typeof(T).GetProperties().Where(p => p.CustomAttributes.All(a => a.AttributeType != typeof(SqlMapperExtensions.DapperIgnore))).Select(p => p.Name)));
            builder.From(typeof(T).Name);
            builder.Where("id = @id", new { id });
            builder.Where("accountID = @accountID", new { accountID = accountName });
            builder.Where("state != 'DELETED'");

            var result …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing dapper

15
推荐指数
3
解决办法
1万
查看次数

标签 统计

c# ×1

dapper ×1

unit-testing ×1