我试图用.NET来模拟NSubstitute结构。
假设我定义了以下结构:
struct MyStruct
{
public String CustomString { get; private set; }
}不,我想用NSubstitute设置该属性的返回值:
MyStruct myStruct = new MyStruct();
myStruct.CustomString.Returns("test");但是这不起作用,引发了以下异常:
找不到要回来的电话。
我还试图为结构创建一个替代品,但这也不起作用,因为结构不是引用类型。
那么,你们知道有什么可行的办法来模拟一个结构吗?
发布于 2015-11-10 03:19:47
据我所知这是不可能的。NSubstitute (和许多其他.NET模拟框架)依赖于DynamicProxy来模拟类型。DynamicProxy基本上是动态地创建一个新类型,它要么实现被模拟的接口,要么为被模拟的类创建一个子类。
因为我们是can't derive from structs in .NET,所以DynamicProxy将无法创建这个代理类型。因此,我们不能使用这种方法来模拟它。
https://stackoverflow.com/questions/33565388
复制相似问题