Moq,如何从另一个接口内部的接口验证方法

Moq, how verifing method from interface inside another interface

我有2个接口 接口 A 有一个方法

InterfaceB CreateObjectOfInterfaceB();

接口 B 有方法

void DoSth();

如何验证是否使用了方法 CreateObjectOfInterfaceB().DoSth()?

你有两个对象,所以你需要两个模拟。将您的第一个模拟设置为 return 第二个模拟,从那里应该很简单。

var mockA = new Mock<InterfaceA>();
var mockB = new Mock<InterfaceB>();

mockA.Setup(i => i.CreateObjectOfInterfaceB()).Returns(mockB.Object);

// Do your test

mockA.Verify(i => i.CreateObjectOfInterfaceB(), Times.Once);
mockB.Verify(i => i.DoSth(), Times.Once);