gpt4 book ai didi

c# - 如何测试 EF 模型

转载 作者:行者123 更新时间:2023-11-28 20:57:12 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何通过 TDD 编写 Entity Framework Code First 代码。我发现这很难,因为我没有像过去使用 Ruby On Rails 那样的测试数据库。用一个例子可能更容易解释:

目前我有:

public interface IMyContext
{
IDbSet<UserProfile> Users { get; set; }
}

public class UserModel
{
IMyContext myContext;

UserModel(IMyContext myContext)
{
this.myContext = myContext;
}

UserProfile GetUser(int id)
{
return myContext.Users.Where(u => u.id == id);
}
}

我不确定如何在没有正在运行的数据库的情况下测试 UserModel 代码。我知道我可以模拟 MyContext - 但代码 myContext.Users.Where ... 可能涉及复杂的模拟?我的代码结构有误吗?我如何在没有测试数据库的情况下为模型编写测试?还是我应该伪造上下文?

谢谢!

最佳答案

将您的代码分解为核心组件,您将意识到您需要做的就是模拟上下文的 Users。属性(property)。在那之后, Where 实际上只是一个针对 IEnumerable 的静态方法。对象

var users = myContext.Users;
var returnEnumerable = Enumerable.Where(users, u=>u.id == id);
return returnEnumerable

因此,只需模拟您的上下文,当 .Users 时被调用,它返回一个 IDbSet<UserProfile>自己做的

关于c# - 如何测试 EF 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11437708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com