我已经在接口上存根了一个方法,并想看看它是用什么参数调用的,但是这个方法被调用了几次,我希望能够检查每个调用的参数。是否有一堆我可以检查的对存根的调用历史记录?
我的情况是这样的:
myStub.AssertWasCalled(stub => stub.SomeMethod(Arg<ISomeInterface>.Matches<ISomeInterface>(p => p.Mode == Mode.SomeEnum)))
我已经在接口上存根了一个方法,并想看看它是用什么参数调用的,但是这个方法被调用了几次,我希望能够检查每个调用的参数。是否有一堆我可以检查的对存根的调用历史记录?
我的情况是这样的:
myStub.AssertWasCalled(stub => stub.SomeMethod(Arg<ISomeInterface>.Matches<ISomeInterface>(p => p.Mode == Mode.SomeEnum)))
您可以使用GetArgumentsForCallsMadeOn
.
GetArgumentsForCallsMadeOn 返回一个二维对象数组,因此您需要进行强制转换才能获得您期望的类型。
它是这样工作的:
public interface IDependency {
int DoSomething(SomeComplexType someComplexType,
int someInteger);
}
IList<object[]> argumentsSentToDoSomething =
dependency.GetArgumentsForCallsMadeOn(x => x.DoSomething(null, 0));