我有一个静态的类包装一些地方法从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存根。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top