小编Sar*_*mad的帖子

CosmosDB 中的模拟 ItemResponse

我正在使用 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)

c# moq xunit azure .net-core

5
推荐指数
1
解决办法
2909
查看次数

标签 统计

.net-core ×1

azure ×1

c# ×1

moq ×1

xunit ×1