![]() |
1
13
单身汉与可测试性不一致,因为他们很难改变。你最好使用
注意警卫克劳斯和
这将允许您使用Rhino mock或其他动态模拟库来注入 Test Doubles 将接口插入到消费类中。 |
![]() |
2
27
只要使用反射。 使用提供的示例代码,您需要确保在将静态字段设置为模拟对象之前调用静态构造函数。否则,它可能会覆盖模拟对象。在设置测试之前,只需调用singleton上没有影响的任何内容。
我提供了用Moq进行模拟的代码,但我猜rhinomocks非常类似。 |
![]() |
3
6
下面是一种使用委托的低接触方法,委托可以在初始设置并在运行时更改。最好通过示例(特别是模仿DateTime.Now)来解释: |
![]() |
4
4
: Working Effectively with Legacy Code .
现在我们有了这个setter,我们可以创建一个 允许存储并设置它。我们希望在测试设置中编写如下代码:
|
![]() |
5
1
您可以模拟接口,也可以模拟接口。然后,重构使用依赖项注入的代码,以获得对singleton对象的引用。我在代码中多次遇到这个问题,我最喜欢这个解决方案。
然后。。。
|
![]() |
6
1
退房 Dependency Injection .
Google Testing Blog ,特别是米斯科的文章。 您说您正在编写测试,所以可能已经太晚了,但是您能将静态代码重构到实例中吗?或者说,这个类应该保持静态状态,这有什么真正的原因吗? |
![]() |
7
0
是 使用Resharper,不是吗?),大部分操作都很简单。如果这真的很复杂,那么您可以有多个构造函数,一个设置新的依赖项字段,另一个调用第一个,并将单例作为默认值。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |