|
70
|
| patridge jonathanpeppers · 技术社区 · 17 年前 |
|
|
1
53
扩展方法只是伪装的静态方法。模拟框架(如MOQ或Rhinomocks)只能创建对象的模拟实例,这意味着模拟静态方法是不可能的。 |
|
|
2
16
|
|
|
3
16
如果您可以更改扩展方法代码,那么您可以这样对其进行编码,以便能够测试:
因此,扩展方法只是实现接口周围的包装器。 (您可以只使用不带扩展方法的实现类,扩展方法有点像语法糖。) 您可以模拟实现接口并将其设置为扩展类的实现。
|
|
|
4
13
我为需要模拟的扩展方法创建了一个包装类。
然后,您可以模拟测试中的包装方法,并使用IOC容器编写代码。 |
|
|
5
3
对于扩展方法,我通常使用以下方法:
这使得注射非常容易。 |