![]() |
1
10
好吧,你阻止了大多数的优化。 首先,抖动可能不知道将调用哪个实现(他不能,因为您可能正在使用模拟,对吗?) 所以,所有这些本应内联的属性访问器现在都将是真正的调用。对于内联,简单属性不会在运行时增加实际开销。虚拟属性不会被内联,所以它们是内联的。 这是性能方面的问题,另一个问题是,您不能信任属性来工作,因为您认为它们是工作的。 每个属性都可以被重写。即使是你自己,因为“这一次真的很有意义,对吗?”。因此,您将发现自己比平时更经常检查调用树,以检查哪些实现适用于您正在处理的代码。 |
![]() |
2
4
我认为没有什么严重的后果。意外重写您不打算重写的方法/属性的可能性非常小。 我认为用一个对象类替换另一个对象类(例如模拟对象)的能力是一件好事,要做到这一点,您需要一个具有虚拟方法/属性的基类。它提醒我使用抽象基类来遵循 Open Closed Principle . |
![]() |
Developer · 使用MOQ嵌套类和接口C的单元测试# 7 年前 |
![]() |
Graeme · 看看有什么传给了一个Mock? 7 年前 |
![]() |
erexo · Moq模拟。Of<Obj>vs new Obj(); 7 年前 |
![]() |
Dede · Moq方法调用序列比较 7 年前 |
![]() |
filur · 管理复杂单元测试模拟数据 7 年前 |