gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 单元测试 - 虚假存储库变得笨拙

转载 作者:行者123 更新时间:2023-12-01 10:12:06 26 4
gpt4 key购买 nike

事情一开始很简单,我的虚假存储库包含实体的硬编码列表。

随着我的进步,我共享的虚假存储库变得臃肿。我不断地向这些列表中添加新属性和新实体。这使得维护变得极其困难,也很难看到测试在做什么。我相信这是一个名为“General Fixture”的反模式。

在研究 ASP.NET MVC 单元测试时,我看到了两种用于准备传递给 Controller ​​的存储库装置的方法。

  1. 创建在所有测试之间共享的硬编码虚假存储库
  2. 在每个测试中模拟部分存储库

我很想探索上面的选项 #2,但我读到模拟存储库不是一个好主意,而且在我测试在集合上运行的 Controller (即分页)的场景中,这似乎相当令人生畏/排序/过滤功能)。

我对社区的问题...

除了基本示例之外,还有哪些准备存储库装置的方法效果很好?

最佳答案

我认为您不应该只选择两个选项之一。有些情况下使用假存储库会更好,有些情况下模拟会更好。我认为你应该根据具体情况评估你需要什么。例如,如果您正在为需要调用返回 bool 值的 IUserRepository.DoesUserExist()UsersService 编写测试,那么您就不会使用伪造的存储库,它更容易模拟调用以返回 true 或 false。

Moq太棒了。

关于asp.net-mvc - ASP.NET MVC 单元测试 - 虚假存储库变得笨拙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4257433/

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