【发布时间】:2021-06-15 18:55:53
【问题描述】:
为什么这个测试代码不起作用?
测试类中的方法 CheckDbAsync():
public async Task<bool> CheckDbAsync()
{
return await DbContext
.GetDatabase()
.CanConnectAsync(default);
}
使用 FakeItEasy 的测试代码:
var dbContext = A.Fake<IDbContext>();
A.CallTo(() => dbContext
.GetDatabase()
.CanConnectAsync(default))
.Returns(Task.FromResult(true));
var tc= new Testclass(dbContext);
bool result=await tc.CheckDbAsync();
总是返回 false,而不是 true。
【问题讨论】:
-
顺便说一句,如果您使用的是现代 FakeItEasy,您可以将
.Returns(Task.FromResult(true))替换为.Returns(true)。我觉得它更具可读性,但您的口味可能会有所不同……
标签: c# mocking fakeiteasy