|
|
1
1
不,这是不可能的。 像moq和rohino mock这样的工具通过在运行时生成您想要模拟的类型的子类来发挥它们的魔力。它们通过重写一个成员(对于虚拟成员)或实现它(对于接口),插入代码来检查或记录传递的参数,并返回预先屏蔽的响应,从而生成所有的“验证”和“期望”逻辑。 你能做些什么来避开这个问题?首先,如果您可以将基本方法更改为虚拟的,那么这将允许您通过创建这样的测试工具来测试您的方法:
如果根本无法更改基类,因为代码是如此可怕的棕色区域,您不想弄脏您的鞋子,那么您可以简单地将该方法包装为受保护的虚拟方法,并在上面执行相同的技巧。MOQ确实支持覆盖受保护的虚拟成员(请参阅“杂项”部分 here )-尽管我个人在这种情况下更喜欢手动测试线束。 |