C# 将变量设为引用类型
我的C#测试中有以下模拟:C# 将变量设为引用类型,c#,.net,struct,moq,C#,.net,Struct,Moq,我的C#测试中有以下模拟: private Mock\u mockOffsetPosition=new Mock(50) Offset是一个汇合的.Kafka.Offset结构 它给了我这个错误: CS0452:类型“Offset”必须是引用类型,才能将其用作泛型类型或方法“Mock”中的参数“T” 我该如何解决这个问题?你不能嘲笑它。让我们看看: 在单元测试中,模拟对象可以模拟复杂对象、真实对象的行为,因此在真实对象不可行或不可能合并时非常有用 因此,不用模拟,只需使用所需的值初始化并传递真正
private Mock\u mockOffsetPosition=new Mock(50)代码>
Offset
是一个汇合的.Kafka.Offset结构
它给了我这个错误:
CS0452:类型“Offset”必须是引用类型,才能将其用作泛型类型或方法“Mock”中的参数“T”
我该如何解决这个问题?你不能嘲笑它。让我们看看:
在单元测试中,模拟对象可以模拟复杂对象、真实对象的行为,因此在真实对象不可行或不可能合并时非常有用
因此,不用模拟,只需使用所需的值初始化并传递真正的结构。所有值类型都应如此
private Offset _mockOffsetPosition = new Offset(50);
为什么需要模拟结构?用真货就行了。大多数情况下,您模拟的界面过于复杂,无法使用实类型,您只需要其中的一部分。除非您可以更改Confluent.Kafka.Offset
的代码,否则无法将其更改为类
。我不知道你为什么嘲笑它,因为它是一个非常简单的对象。如果你不知道一个值和一个引用类型之间的区别,你就不应该从模拟接口开始。抱歉,如何使结构成为引用类型?只需将其设置为框(对象)偏移量,但这肯定是一个X/Y问题