我想为单元测试目的创建一个ImageSource的模拟。 ImageSource有一个内部构造函数,我既不能创建一个模拟也不能创建一个继承类。正如这里所说的刷子,但它也适用于ImageSource:How do I implement a custom Brush in WPF?用Moq嘲笑ImageSource
是否有任何解决方法呢?
我想为单元测试目的创建一个ImageSource的模拟。 ImageSource有一个内部构造函数,我既不能创建一个模拟也不能创建一个继承类。正如这里所说的刷子,但它也适用于ImageSource:How do I implement a custom Brush in WPF?用Moq嘲笑ImageSource
是否有任何解决方法呢?
如果我正确理解你的情况,你想创建一个没有公共构造函数的密封类的模拟。
你不能用Moq做到这一点。
作为一种解决方法,您可以使用其他“模拟/隔离”框架,即:TypeMock,它支持此功能。你也可能与微软的鼹鼠交往。另一方面,如果你试图在框架类中插入一个模拟的ImageSource实例,那么你的测试可能会产生错误。
最起码,你可以用另一个可以模拟的类抽象出框架类,而不需要你直接使用这个类和ImageSource。
我被迫使用Moq。我测试自己的班级,而不是框架。从ImageSource中抽象出来似乎是解决我的问题的好方法。谢谢。 – 0xddr
这个模拟的ImageSource实例,你需要将它提供给你写的类或框架类吗? – Gilles
相当框架类。这是否有所作为? – 0xddr