【发布时间】:2015-05-10 15:32:09
【问题描述】:
我有如下界面:
public interface IUserRepository : IRepositoryBase
{
void AddUser(User user);
}
IRepositoryBase 有一个方法Update(params object[] entities)。
现在我想在 Moq 中检查此方法的内容。我尝试的是这样的:
// ARRANGE
var userRepositoryMock = new Mock<IUserRepository>();
(...)
// ASSERT
userRepositoryMock.Verify(mock =>
mock.Update(It.Is<User>(
u => u.CreationDate.Date == DateTime.Today
&& u.Email == expectedEmail
&& u.FullName == expectedFullName
&& u.Name == expectedUserName)),
Times.Once,
"The existing user should be updated with the correct information.");
不幸的是,由于 Update 方法是 IUserRepository 继承自的接口的一部分,因此我无法访问它。可以在错误消息中看到它是基类的一部分:
Moq.MockException
预期在模拟上调用一次,但为 0 次 (...)
执行的调用:
IUserRepository.AddUser(用户)
IRepositoryBase.Update(System.Object[])
IRepositoryBase.SaveChanges()
有人知道如何检查基接口的方法调用吗?
【问题讨论】:
标签: c# unit-testing moq