在Moq回调中使用当前对象实例

时间:2013-08-12 10:44:29

标签: .net unit-testing mocking moq

我想使用具有函数Foo的Moq创建存根,该函数将存根实例推送到作为参数传递的列表中。我可以使用Callback<>()方法来捕获列表,但是我无法从那里访问存根实例,是吗?

这是我到目前为止所得到的:

var stubPattern = new Mock<IBar>();
stubPattern.Setup(stub => stub.Foo(It.IsAny<List<IBar>>()))
    .Callback<List<IBar>>(list => list.Add(stubInstance); // stubInstance not valid

是否有可能在Moq中做这样的事情?

1 个答案:

答案 0 :(得分:5)

如果您想自己获取模拟实例,可以使用Object属性。

stubPattern.Setup(stub => stub.Foo(It.IsAny<List<IBar>>()))
           .Callback<List<IBar>>(list => list.Add(stubPattern.Object);