模拟结构与NSubstitute

时间:2015-11-06 11:04:36

标签: .net unit-testing struct mocking nsubstitute

我试图用NSubstitute模拟一些.NET结构。

让我说我定义了以下结构:

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

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

MyStruct myStruct = new MyStruct();

myStruct.CustomString.Returns("test");

但是这不起作用并抛出以下异常:

  

无法找到从中返回的电话。

我也试过为struct创建一个Substitute,但这不起作用,因为struct不是引用类型。

那么,你们知道模拟结构的任何可能的解决方案吗?

1 个答案:

答案 0 :(得分:1)

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

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