我正在使用 XUnit
和 Moq
对逻辑层的代码进行测试。我的逻辑层还与数据层通信,因此我想模拟接口以保持我的测试简单。
当调用异步任务方法时,我想知道如何返回 Task<string>
。我的 GetOrder
方法调用 GetOrderById
方法,但数据层方法返回 null。
编辑: 根据所有反馈,我修改了我的单元测试。现在它可以正常工作了。
我的测试:
public async void GetOrder()
{
//Arrange
string expected = "test";
var mock = new Mock<IRepository>();
mock.Setup(arg => arg.GetOrderNameById(It.IsAny<int>())
.Returns(Task.FromResult(expected));
var survey = new SurveyResult(mock.Object);
//Act
string result = await survey.GetOrderNameById(It.IsAny<int>()));
//Assert
Assert.Equal(expected, result);
}
string result = await survey.GetResult(score);
后面紧跟着Assert.Equal(expected, result);
,则无需为单元测试返回布尔值。 - Sir Rufoasync void
的使用。 - Pavel Anikhouski