我试图用NSubstitute模拟一些.NET结构。
让我说我定义了以下结构:
struct MyStruct
{
public String CustomString { get; private set; }
}
不,我想用NSubstitute设置该属性的返回值:
MyStruct myStruct = new MyStruct();
myStruct.CustomString.Returns("test");
但是这不起作用并抛出以下异常:
无法找到从中返回的电话。
我也试过为struct创建一个Substitute,但这不起作用,因为struct不是引用类型。
那么,你们知道模拟结构的任何可能的解决方案吗?
答案 0 :(得分:1)
据我所知,这是不可能的。 NSubstitute(以及许多其他.NET模拟框架)依赖Castle DynamicProxy来模拟类型。 DynamicProxy基本上创建了一个新类型,它实现了一个被模拟的接口,或者为被模拟的类创建一个子类。
因为我们can't derive from structs in .NET,DynamicProxy将无法创建此代理类型。因此,我们无法使用该方法嘲笑它。