我可以在同一类型的多个模拟中共享相同的设置吗?

时间:2014-01-08 10:44:35

标签: c# moq

正如标题所说,我可以为一个Mock进行设置,然后以某种方式将它传输到同一类型的多个对象上吗?

假设我正在制作Mock<IProcessor>()。我想创建多个这些模拟对象,但使用相同的设置(即,所有应该具有相同的期望,但它们有几个实例)。对我来说多次重复代码没有多大意义 - 我能以某种方式分享ISetup吗?

1 个答案:

答案 0 :(得分:2)

Moq本身并没有为此提供便利,AFAIK。

但您可以轻松地将设置代码移动到扩展方法:

public static void MySetup(this Mock<IProcessor> mock)
{
    mock.<setup-whatever>
}

然后,在您需要的每个位置,您可以这样做:

...
var mock = new Mock<IProcessor>();
mock.MySetup();
...