【发布时间】:2011-09-09 19:22:16
【问题描述】:
我已经看到 this question 关于部分存根,但它并没有完全告诉我我需要知道什么。
我了解,如果我为某个类使用 Moles 存根(例如,对于 DataService,我使用的是 SDataService),我可以将 CallBase 属性设置为 true,这样,如果特定方法没有委托,则将调用基本实现的方法。太好了,但是在这种情况下,如何将委托分配给特定方法?
如果没有办法做到这一点,假设我有一个接口IDataService,我使用SIDataService 存根。我可以在这里轻松地将委托分配给方法。但是,如果给定方法没有委托,我如何告诉它调用DataService(IDataService 的实现)上的相应方法?
谢谢!
编辑:
我现在看到,在上面的第一个场景中,该方法需要是虚拟的才能被覆盖。我不认为这很有意义,但事实就是如此。
那么,专注于第二种情况,我是否必须创建一个Behavior? (为什么还没有像痣一样的存根?)或者有更简单的方法吗?
【问题讨论】:
-
可以给个代码示例吗?你看过 MInterdaces 吗?如果方法不是虚拟的,你可以在你的类的 MInterface 中做一个 Mock。
-
@peer 我最初并没有看到该方法需要是虚拟的。这不在 Pex 上下文中 - 我可以使用
MInterface吗?
标签: moles