![]() |
1
45
您可能在此场景中使用部分模拟,尽管您的所有方法都需要是虚拟的:
|
![]() |
2
2
|
![]() |
3
1
编辑 :我现在同意这不是安德鲁案件的正确答案。我想把这个答案留在这里作为评论线索。请不要再投反对票了:) 编辑前: 通常,模拟对象框架的设计并不是为了简化单个类场景,而是为了隔离代码,以便您可以测试单个类。 如果您试图使用模拟对象框架来解决这个问题,那么框架将创建一个派生类并重载该方法。唯一不同的是,您可以在大约3行而不是5行中完成这项工作,因为您不必创建派生类定义。
如果您想使用模拟对象来隔离这个行为,那么您应该将这个类拆分一下。这个
您遇到这个问题的事实可能表明有一个更简单或更细粒度的设计尚待发现。找到一个不那么具体的类,它的名称类似于“manager”或“service”,这通常意味着您可以将设计分解为更小的类,并从中获得更好的可重用性和可维护性。 |
![]() |
Developer · 使用MOQ嵌套类和接口C的单元测试# 7 年前 |
![]() |
Graeme · 看看有什么传给了一个Mock? 7 年前 |
![]() |
erexo · Moq模拟。Of<Obj>vs new Obj(); 7 年前 |
![]() |
Dede · Moq方法调用序列比较 7 年前 |
![]() |
filur · 管理复杂单元测试模拟数据 7 年前 |