当我不知道方法的参数在Moq中是什么时,如何验证方法被调用

Ros*_*ott 4 c# moq

我需要验证一个方法是否被调用,但它接收一个我无法在设计时确定的参数对象.我不在乎参数是什么,我只想验证该方法是否被调用.

所以我想打电话给这样的话:

        var subDao = new Mock<ISubscriptionSnapshotDao>();
        subDao.Verify(x => x.Save(), Times.Exactly(1));
Run Code Online (Sandbox Code Playgroud)

但是,ISubscriptionSnapshotDao.Save需要一个对象来保存.

 Save(Subscription entity);
Run Code Online (Sandbox Code Playgroud)

有没有办法验证Save已被调用而不知道参数是什么?

Pet*_*lly 11

就在这里!如果您知道方法所需的参数类型.

It.IsAny<T>()
Run Code Online (Sandbox Code Playgroud)

请尝试以下方法

subDao.Verify(x => x.Save(It.IsAny<Subscription>()), Times.Exactly(1));
Run Code Online (Sandbox Code Playgroud)