首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟静态类

问模拟静态类
EN

Stack Overflow用户
提问于 2009-12-01 11:06:23
回答 2查看 5.9K关注 0票数 7

我有一个静态类,它包装了来自winspool的一些本机方法:

代码语言:javascript
复制
public static class WinSpool
{
     [DllImport("winspool.drv")]
     public static extern int OpenPrinter(string pPrinterName, out IntPtr phPrinter, IntPtr pDefault);
     ...
     //some more methods here
}

我想模拟它们进行单元测试,但是找不到这样的模式。(每个人都避免使用静态类吗?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-01 11:09:09

是的,静态类通常是frowned upon in the field of unit testing and mocking。没有开源的模拟框架(如Rhino Mocks)支持静态类模拟

如果你一定要模拟静态类,那么我担心你必须使用Typemock,因为它不是免费的。

票数 11
EN

Stack Overflow用户

发布于 2014-01-15 03:16:45

微软已经为Visual Studio 2012旗舰版制作了一个伪造框架,允许使用填充程序模拟静态类型。垫片是为所有外部可访问方法提供委托的“伪”程序集。然后,调用通过事件筛选器进行路由,只要测试设置了它的一个委托,该委托就会处理该调用。并不是说任何人都希望鼓励不通过依赖注入处理的静态类型。更好的方向是远离对垫片的需求,转向使用DI的存根。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1823739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档