您如何模拟 returns 接口的方法?

How can you mock a method that returns an interface?

我需要模拟一个 return 是接口的方法,但我无法弄清楚。这是我的尝试。我不知道如何 return,因为你不能 return 界面。

        messagingClient.Setup(x =>
             x.CreateMessage(new OrganizationUserDeletedDomainEvent
             {
                 UserType = 1,
                 OrganizationUserId = 1,
                 OrganizationId = 1,
                 DeletedAt = 100000
             })).Returns();

该方法具有此签名:

IMessage<TContent> CreateMessage<TContent>(TContent messageContent)
   where TContent : class, new();

您可以创建 IMessage 的模拟并使用该模拟返回

var messageMock = new Mock<IMessage<OrganizationUserDeletedDomainEvent>>();

messagingClient.Setup(x =>
     x.CreateMessage(new OrganizationUserDeletedDomainEvent
     {
         UserType = 1,
         OrganizationUserId = 1,
         OrganizationId = 1,
         DeletedAt = 100000
     })).Returns(messageMock.Object);