我正在使用 xUnit 中的 Moq 为涉及 CosmosDB 的服务编写单元测试。有一个从 CosmosDBGetVehicleInfo返回的方法ItemResponse<VehicleInfo>。由于ItemResponse有一个受保护的构造函数,所以我无法更新它。因此,我嘲笑调用者方法并做
var responseMock = new Mock<ItemResponse<VehicleInfo>>();
responseMock.Setup(x => x.Resource).Returns(expectedItem); //expectedItem is of VehicleInfo type
cosmoRepoServiceStub.Setup(service => service.GetVehicleInfo("a1", "a2").Result).Returns(responseMock.Object);
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,当GetVehicleInfo如下调用时,它null总是返回。我希望它返回ItemResponse<VehicleInfo>其中Resource将包含expectedItem.
ItemResponse<VehicleInfo> response = await _cosmosRepo.GetVehicleInfo(plate, country);
if (response == null){ //... }
Run Code Online (Sandbox Code Playgroud)