Moq:如何验证接受在方法中创建的对象的函数

Her*_*man 2 c# unit-testing moq

我有以下方法;

public class MyClass
{
    public Repository UserRepository { get; set; }
    public void CreateUser(Message someMsg)
    {
       if (someMsg.CanCreate)
       {
           var obj = new object();
           UserRepository.Save(obj)
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的测试用例中,我使用Moq来模拟ObjRepository,我想在"Save()"方法上调用verify.但是,save方法接受在被测方法中创建的对象,我无法模拟.

不管怎么说,使用Moq?我做错了吗?

mar*_*ind 6

您可以在模拟上进行以下设置:

objRepMock.Setup(or => or.Save(It.IsAny<object>()).Callback(obj => {
   // Do asserts on the object here
}
Run Code Online (Sandbox Code Playgroud)