Scu*_*eve 9 c# unit-testing moq async-await asp.net-mvc-5
通常情况下,我这样嘲笑我的回购:
var repository = new Mock<ISRepository>();
repository.Setup(r => r.GetMemberAsync(email))
.Returns(Task.FromResult(new Member
{
FirstName = firstName,
LastName = lastName
}));
Run Code Online (Sandbox Code Playgroud)
但是,在我的代码中,我检查是否找不到该成员,即GetMemberAsync返回null.我该如何嘲笑这个?
我试过了:
var repository = new Mock<ISRepository>();
repository.Setup(r => r.GetMemberAsync(email))
.Returns(Task.FromResult<object>(null));
Run Code Online (Sandbox Code Playgroud)
但是我收到编译错误.
i3a*_*non 29
您收到编译器错误,因为您返回的任务与async方法返回的类型不匹配.你应该返回Task<Member>
而不是简单地Task<object>
:
repository.Setup(r => r.GetMemberAsync(email)).Returns(Task.FromResult<Member>(null));
Run Code Online (Sandbox Code Playgroud)
Mar*_*ijk 15
也可以在不使用 Task 类的情况下返回结果。
repository
.Setup(r => r.GetMemberAsync(email))
.ReturnsAsync((Member)null);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7413 次 |
最近记录: |