nsubstitute - 我可以让NSubstitute自动模拟我的具体类?

  显示原文与译文双语对照的内容

我有一个接口,我使用'NSubstitute'模拟,它包含返回concreate类的属性,即返回值不是接口。 e.g


public interface ISomething


{


 SomeObj First { get; }


 SomeObj Second { get; }


}



'someobj'类具有默认构造函数,但'NSubstitute'总是为这些属性返回'空'。 类本身不受控制,所以我不能简单地从接口派生它。

'NSubstitute'能否模拟这些类型的属性? 或者有什么方法可以替代? 否则,我必须在测试之前手工初始化 mock,这可以是大量代码( 即使它通过一种通用方法重用) 。

也许有一个更简单的解决方法?

时间: 原作者:

类的默认( 无参数) 构造函数及其所有成员都是虚拟( 请参见介绍自动和递归模拟中的注释。),则将自动模拟类。 这是为了减少不需要的( 破坏性) 副作用,如果我们使用一个代替的虚拟unmocked代码路径。

NSubstitute没有替代这里行为的方法。 建议你通过自己的工厂方法来创建所有替代项( 比如 。 测试项目中使用NSubstitute生成替代的static Sub.For<T>(...) 方法,然后应用所需的所有初始化规则。

希望这有帮助

可能的相关链接:

原作者:
...