使用 moq 测试在 void 方法中调用嵌套函数
Test that a nested function is called in a void method with moq
我有一个接口的实现,想覆盖实现中的方法。大多数函数都是无效的并且只做一件事,我想测试是否进行了某个调用但不确定如何使用 mock
FakeService.cs
public FakeService(IRepository<FaketTable> repo)
public virtual void ClearAll()
{
this.fakeTablerepo.Truncate();
}
我想编写一个测试以确保调用了 Truncate。没有返回任何东西,所以没有什么可以断言的。任何帮助将不胜感激。
断言所需成员是 called/invoked
[TestMethod]
public void ClearAll_Should_Truncate_Repo() {
//Arrange
var mock = new Mock<IRepository<FaketTable>>();
var subject = new FakeService(mock.Object);
//Arrange
subject.ClearAll();
//Assert
mock.Verify(_ => _.Truncate(), Times.Once());
}
参考Moq Quickstart以更好地了解如何使用该框架
我有一个接口的实现,想覆盖实现中的方法。大多数函数都是无效的并且只做一件事,我想测试是否进行了某个调用但不确定如何使用 mock
FakeService.cs
public FakeService(IRepository<FaketTable> repo)
public virtual void ClearAll()
{
this.fakeTablerepo.Truncate();
}
我想编写一个测试以确保调用了 Truncate。没有返回任何东西,所以没有什么可以断言的。任何帮助将不胜感激。
断言所需成员是 called/invoked
[TestMethod]
public void ClearAll_Should_Truncate_Repo() {
//Arrange
var mock = new Mock<IRepository<FaketTable>>();
var subject = new FakeService(mock.Object);
//Arrange
subject.ClearAll();
//Assert
mock.Verify(_ => _.Truncate(), Times.Once());
}
参考Moq Quickstart以更好地了解如何使用该框架