问题标签 [nsubstitute]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nsubstitute - NSubstitute 收到的字符串不匹配
任何人都可以看到问题是什么?对我来说,这些字符串看起来是一样的,它们来自同一个对象属性。
我会很感激一些关于为什么失败的信息,谢谢。
nsubstitute - NSubstitute Received() 响应多个调用
我有一个用 NSubstitute 伪造的对象,它上面有一个被调用两次的方法。我想验证该方法实际上已被调用了两次(而且只调用了两次)。我浏览了文档和谷歌,但没有运气。任何帮助,将不胜感激。谢谢。
c# - 如何使用 NSubstitute 模拟一个惰性类
上面的代码抛出异常。
延迟初始化的类型没有公共的、无参数的构造函数
我正在使用 C# 4.0 和 NSubstitute 1.2.1
c# - 模拟对象没有 Intellisense 中显示的所有属性 - 在一个项目中但在另一个项目中具有它们
我正在模拟 VSTO 对象,并且在一个项目中(我没有写)它具有以下代码:
mockSheets 的 Intellisense 工具提示显示 6 个属性:
带有断点的行在这个项目中有效。
但是,我在不同的项目中有相同的代码(相同的引用、命名空间等),但 mockSheets 的 Intellisense ToolTip 仅显示 1 个属性:
我知道这是我要解决的根本原因,但实际问题是:
无法对空引用执行运行时绑定
编辑:
工作表对象被模拟:
c# - 二维对象数组返回类型 - NSubstitute
我得到一个演员表异常
System.InvalidCastException:无法将“System.Object[]”类型的对象转换为“System.Object[,]”类型。在 TestTest.cs 中的 Scratch.TestFixture.Get2DArray() 的 Castle.Proxies.ITestProxy.Get2DArray():第 17 行
从以下:
任何人都可以对此有所了解吗?我认为这是一个NSubstitute错误?
asp.net - 为什么我不能使用 NSubstitute 在 MVP 中模拟视图属性
我正在尝试在 MVP 应用程序中对我的演示者进行单元测试。这是我尝试使用 NSubstitude 模拟的视图界面:
这是我的单元测试课。我正在使用 NUnit 框架:
我在视图界面中添加了 set modifer,但它不起作用。那么有什么问题呢?
unit-testing - 你如何模拟一个内置类型的子类(例如TextBox)?
我们正在使用 NSubstitute,所以我认为我们需要一个单独的接口来模拟。我们还有引用超类并使用多态性的代码。
我的想法..
使用我添加的方法和现有方法(例如 Value 和 Text)创建一个接口,并更改现有代码中的引用以使用该接口而不是直接使用超类?
包装 TextBox 而不是子类化它(不确定 - 这是适配器/代理模式)。
更新(细化):
我们创建了一个 ValueTextBox 类,它是 TextBox 的子类并添加了一个 Value 属性:
我们想要断言其他代码在预期的时间调用 get/set Text/Value。
笔记:
- 我们还有另一个类 IntegerTextBox,类似于 ValueTextBox。
- 我们的其他代码有时利用多态性将 ValueTextBox/IntegerTextBox 对象存储在 TextBox 类型的变量中。
c# - NSubstitute 和协方差支持?
我正在尝试测试一些 TPL 数据流代码并遇到 NSubstitue 参数匹配的协方差问题。它断言:
来自匹配器:
因此,绊脚石似乎是它不是协变匹配 ITargetBlock 到实现类 ActionBlock。
有没有办法在不明确匹配 ActionBlock 的情况下做到这一点,或者它只是 NSubstitute 的当前限制?
编辑:为了大家方便,这是 ActionBlock 的类签名。我认为这足以在不引入大量接口等的情况下看到协方差问题。
问题的关键在于,通过协方差,ITargetBlock<T>
应该匹配一个ActionBlock<T>
. NSubstitute 中的 arg 匹配器Arg.Any<ITargetBlock<ChainLinkFakeData>>()
似乎没有?
简单的解决方法是Arg.Any<ActionBlock<ChainLinkFakeData>>()
,但这需要了解测试实施的主题。
就更简单的示例而言,我没有对此进行测试,但我希望会有类似的问题IEnumerable<T>
not matching List<T>
。
f# - 在 F# 中存根记录
由于 F# 记录是真正的密封类,我不能存根记录类型。是否有一个属性我可以放在 F# 中的记录上,这样它就不会被编译为密封,以便我可以存根记录?
这抛出
System.TypeLoadException:无法从程序集“DynamicProxyGenAssembly2,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”加载类型“Castle.Proxies.QuoteProxy”,因为父类型是密封的。
如果你很好奇。这是模拟的定义:
c# - 有没有办法使用 NSubstitute 对类返回值进行递归模拟
NSubstitute 在其文档中这样说:
返回接口的方法 [...] 将自动返回自己的替代品。
通常这就足够了。但是,当我这样做时:
测试方法:
实际方法:
Resolve 方法返回一个类。所以它没有被嘲笑。这意味着当我调用时我在 myObject 中得到 null 和 null 引用异常CallSomeMethod
;
如果我可以只返回一个模拟类(除非我专门覆盖了该接口),那就太好了。
有没有办法使用NSubstitute来获得这个?