【发布时间】:2019-11-25 00:41:56
【问题描述】:
我正在使用 xUnit 和 Moq 编写单元测试。我的测试类有一个属性
public DocumentClient documentClient {get; set;}
我正在尝试使用 Moq 模拟此属性并尝试模拟 DocumentClient 的 OpenAsync 方法。这就是我创建 Mock 对象的方式。
var documentClientObj = new Mock<DocumentClient>();
但我收到一条错误消息,提示“System.NotSupportedException:要模拟的类型必须是接口或抽象或非密封类”
【问题讨论】:
-
问题是
DocumentClient是sealed类。这在起订量中是严格禁止的。您可以将所需功能提取为interface,然后尝试模拟它... -
但是我需要 DocumentClient 类型本身,因为我稍后会使用它来创建 BulkExecutor。我没有选择使用 IDocumentClient 接口。
标签: moq azure-cosmosdb xunit