通常,我会像这样模拟我的 repo:
var repository = new Mock<ISRepository>();
repository.Setup(r => r.GetMemberAsync(email))
.Returns(Task.FromResult(new Member
{
FirstName = firstName,
LastName = lastName
}));
但是,在我的代码中,我检查是否找不到该成员,即 GetMemberAsync 返回 null。我该如何模拟这个?
我试过:
var repository = new Mock<ISRepository>();
repository.Setup(r => r.GetMemberAsync(email))
.Returns(Task.FromResult<object>(null));
但是我得到一个编译错误。
最佳答案
您收到编译器错误,因为您返回的任务与异步方法返回的类型不匹配。你应该返回 Task<Member>
而不是简单的 Task<object>
:
repository.Setup(r => r.GetMemberAsync(email)).Returns(Task.FromResult<Member>(null));
关于c# - 单元测试时,如何从异步方法模拟返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33356808/