我知道有几个类似于我的问题.
但我不认为上述两个问题都有明确的答案符合我的要求.
现在我开发了一个新的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)