2015-11-06 62 views
0

我想模拟一些.NET结构与NSubstitute。模拟结构与NSubstitute

可以说,我得到了下面的结构定义:

struct MyStruct 
{ 
     public String CustomString { get; private set; } 
} 

不,我想设置该属性与NSubstitute返回值:

MyStruct myStruct = new MyStruct(); 

myStruct.CustomString.Returns("test"); 

但是,这并不工作,投以下情况除外:

找不到一个电话从返回。

我也试着为结构创建一个替代品,但是因为一个结构不是一个引用类型,所以不起作用。

那么,你们知道的任何可能的解决方案来嘲笑一个结构?

回答

0

据我所知这是不可能的。 NSubstitute(和许多其他.NET模拟框架)依靠Castle DynamicProxy来模拟类型。 DynamicProxy基本上创建了一个新的类型,它实现了一个被模拟的接口,或者为被模拟的类创建了一个子类。

因为我们can't derive from structs in .NET,DynamicProxy将无法创建此代理类型。因此我们不能用这种方法来嘲笑它。