题
我有一个静态的类包装一些地方法从winspool:
public static class WinSpool
{
[DllImport("winspool.drv")]
public static extern int OpenPrinter(string pPrinterName, out IntPtr phPrinter, IntPtr pDefault);
...
//some more methods here
}
我会像来嘲笑他们对单元的测试,但无法找到一个模式。(每个人都不会避免静类的?)
解决方案
是的,静态的一般类 令人难以接受在该领域的单元测试和模拟.据我所知没有开放源嘲讽的框架(例如 犀牛嘲笑)支持静类嘲讽
如果你绝对和必须正面地模拟静类,那么我恐怕你必须去 Typemock, ,这不是免费的。
其他提示
微软已产生的Visual Studio 2012终极一个伪造品框架,允许使用垫片静态类型被模拟。垫片是“假”的组件,对于所有外部可访问方法提供委托。呼叫然后通过事件过滤器路由,何测试已经建立了代表之一,代表处理呼叫。这不是说有人要鼓励未通过依赖注入处理静态类型。该首选方向是搬走了,需要垫片和转向使用使用DI存根。
不隶属于 StackOverflow