【发布时间】:2015-07-15 19:31:53
【问题描述】:
我正在学习测试驱动开发 (TDD),因此我可以在我开始的项目中使用它,但我遇到了一个关于如何设置特定类型测试的问题'想做。
场景是我有一个视图,允许某人编辑有关用户的信息(例如用户名、名字、姓氏等)。在许多情况下,他们正在编辑的这个用户已经存在于数据库中,因此当他们点击保存时,该视图的视图模型会在数据库中更新信息。
我想测试的是视图模型正在将此信息保存到数据库中。这是使用我在构造期间传递到视图模型的实体框架 DbContext 完成的,这意味着我需要在单元测试中创建一个 DbContext 以传递到可以更新和比较的视图模型中。
我想测试的断言是这样的:
Assert.AreEqual(ViewModelFake.EditedUser.Username, DataBaseContextFake.Users.Find(1).Username);
在单元测试最初创建 DbContext 后,它会使用用户填充它,然后在单元测试中更改用户信息。在视图模型中测试的命令负责将编辑后的信息保存到数据库中,替换 DbContext 最初填充的内容。
在过去两天的大部分时间里,我一直在寻找解决方案,但无法找到人们做同样事情的例子。这甚至应该在单元测试中处理吗?请注意,我没有在实体框架之上使用存储库/工作单元层。
【问题讨论】:
-
您的问题已在我的博客vannevel.net/2015/02/26/11 上得到解答
-
这正是我想要的:一个非常简单的解释,单元测试代码的正面没有太多额外的膨胀。谢谢!
标签: c# entity-framework unit-testing mvvm