2

我想使用具有函数 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 中做这样的事情吗?

4

1 回答 1

5

如果您要获取模拟实例本身,则可以使用Object属性。

stubPattern.Setup(stub => stub.Foo(It.IsAny<List<IBar>>()))
           .Callback<List<IBar>>(list => list.Add(stubPattern.Object);
于 2013-08-12T10:55:37.137 回答