我在.net core 2.2中构建了一个Web API应用程序,我必须使用Xunit为此应用程序编写自动化测试。应用程序涉及两个级别的依赖注入Wep API =>服务层=>存储库层。
您能建议编写涉及模拟数据库上下文的测试的理想方法吗?
单元测试只能模拟immediate依赖项级别。例如,如果您正在测试控制器,则可以模拟该服务。如果要测试服务,则要模拟存储库,如果要测试资源库,则要模拟上下文(或者,如果使用EF Core,则仅使用内存数据库)。
换句话说,您不会建立模拟层。模拟应该完全抽象功能。对于控制器示例,您将模拟服务以仅返回一些固定值。该服务模拟实际上不会使用任何存储库。