【发布时间】:2020-06-24 21:34:38
【问题描述】:
我在我的 Asp.Net Core Web API 项目中使用了 Dapper.Contrib。 我在这个项目中使用 xUnit 编写测试时遇到了问题。 例如,这是我将记录添加到数据层的方法。
public async Task<bool> AddAsync(User entity)
{
await using var connection = _dbConnection.CreateDbConnection();
await connection.OpenAsync();
return await connection.InsertAsync(entity) > 0;
}
我尝试按照这个方法写的xUnit方法如下。
[Fact]
public void AddAsync_Should_Return_As_Expected()
{
var connection = new Mock<DbConnection>();
//Arrange
_userDbConnection.Setup(u => u.CreateDbConnection()).Returns(connection.Object);
//Act
var result = _sut.AddAsync(_user).GetAwaiter().GetResult();
//Assert
//Assert.Equal(result,actual);
}
当我运行这个测试方法时,我得到 object not set 错误 '返回等待连接。InsertAsync(entity) > 0;'行。
究竟是我的错?
【问题讨论】:
-
错误很明显 - 您尝试在仅配置了
CreateDbConnection的模拟连接上使用InsertAsync。你也应该设置InsertAsync。
标签: c# unit-testing .net-core xunit