C# 如何模拟获取或返回Span的方法<;T>;
我们一直在使用moq,它严重依赖于表达式树和reflection.emit。但是Span不允许出现在表达式树中,所以不能用它来模拟获取或返回Span的方法 我们一直在解决这个问题,通过自己实现接口手动创建模拟。但这很费时,也远远不够理想C# 如何模拟获取或返回Span的方法<;T>;,c#,.net,mocking,C#,.net,Mocking,我们一直在使用moq,它严重依赖于表达式树和reflection.emit。但是Span不允许出现在表达式树中,所以不能用它来模拟获取或返回Span的方法 我们一直在解决这个问题,通过自己实现接口手动创建模拟。但这很费时,也远远不够理想 如何模拟接受或返回Span的方法?使用Memory而不是Span@aepot,尽管这是一种有效的解决方法,我的代码不需要内存,仅仅因为模仿就在我的设计上强制使用内存似乎是错误的。你有没有检查过在即将到来的Moq 5中使用新的特技机制是否可行?@KlausGütt
如何模拟接受或返回Span的方法?使用
Memory
而不是Span
@aepot,尽管这是一种有效的解决方法,我的代码不需要内存,仅仅因为模仿就在我的设计上强制使用内存似乎是错误的。你有没有检查过在即将到来的Moq 5中使用新的特技机制是否可行?@KlausGütter我看了一下,但没有发布,今年的开发只暂停了一次提交,自2月5日以来没有任何进展,此外,这些文档几乎不存在,因此试图弄清楚它是否有帮助几乎是不可能的。我正在寻找我现在可以使用的东西。不太好,但是您可以创建一个适配器类来实现所讨论的接口,并使用Span
参数将该方法委托给一个新的虚拟方法,例如,它具有T[]
。然后创建一个Mock
并模拟新的虚拟方法。