我正在尝试使用 XUnit 测试 ASP.NET Core Web API 控制器。我直接在控制器中使用 DBContext。在生产中,我使用的是 SqlServer,而对于测试,我使用的是 InMemory 提供程序。当我测试一些使用 EF CoreFirstOrDefaultAsync
方法的代码时,应用程序抛出空引用异常。我正在寻找的值在数据库中不存在。根据我的理解,它应该返回 NULL,它不应该抛出异常。
我尝试了类似的东西where(x => x.Id = id).FirstOrDefaultAsync()
,它也抛出了相同的空引用异常。
当我尝试类似
var exist = await list.AnyAsync(x => x.Id == id);
if(!exist)
{
return NotFound();
}
var user = await list.FirstAsync(x => x.Id == id);
return user;
有用。dbcontext 和 users 属性都有值,它们不为空。
请帮忙。