2012-05-14 197 views
1

我想为单元测试目的创建一个ImageSource的模拟。 ImageSource有一个内部构造函数,我既不能创建一个模拟也不能创建一个继承类。正如这里所说的刷子,但它也适用于ImageSource:How do I implement a custom Brush in WPF?用Moq嘲笑ImageSource

是否有任何解决方法呢?

+0

这个模拟的ImageSource实例,你需要将它提供给你写的类或框架类吗? – Gilles

+0

相当框架类。这是否有所作为? – 0xddr

回答

2

如果我正确理解你的情况,你想创建一个没有公共构造函数的密封类的模拟。

你不能用Moq做到这一点。

作为一种解决方法,您可以使用其他“模拟/隔离”框架,即:TypeMock,它支持此功能。你也可能与微软的鼹鼠交往。另一方面,如果你试图在框架类中插入一个模拟的ImageSource实例,那么你的测试可能会产生错误。

最起码,你可以用另一个可以模拟的类抽象出框架类,而不需要你直接使用这个类和ImageSource。

+0

我被迫使用Moq。我测试自己的班级,而不是框架。从ImageSource中抽象出来似乎是解决我的问题的好方法。谢谢。 – 0xddr