2015-11-06 80 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將無法創建此代理類型。因此我們不能用這種方法來嘲笑它。