我正在尝试使用 moq 模拟第三方库的方法。问题是我正在模拟的方法返回这个框架内部的一个对象,因此我无法实例化它。
在下面的示例中,ChangeCollection 和 ItemChange 都是内部的,我收到错误:“此处无法访问内部构造函数 'ChangeCollection'”
我在想出一个好的解决方案时遇到问题,有人有什么想法吗?
[TestMethod]
public void GetItemsForExistingEMails_should_call_GetItems_atleast_once()
{
ewsMock = new Mock<IEwsIntegration>();
ewsMock.Setup(e => e.GetItems()).Returns(new ChangeCollection<ItemChange>);
var emailService = new EmailService(ewsMock.Object);
var items = emailService.GetItemsForExistingEMails();
ewsMock.Verify(e => e.GetItems(), Times.AtLeast(1));
Assert.AreEqual(0, items.Count());
}
public interface IEwsIntegration
{
ChangeCollection<ItemChange> GetItems();
}