问题标签 [ninject-mockingkernel]

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.

0 投票
2 回答
1266 浏览

unit-testing - 为什么使用 Ninject.Moq 进行以下模拟不起作用?

我正在尝试使用 Ninject.Moq 运行以下代码:

这是 ABC 类定义:

我收到以下异常:

System.ArgumentException:在模拟类型上找不到给定参数的匹配构造函数。---> System.MissingMethodException:找不到类型“AbcProxya759aacd0ed049f3849aaa75e2a7bade”的构造函数。

0 投票
1 回答
3921 浏览

ninject - 如何使用 Ninject 的 MockingKernel (moq) 设置模拟

我很难弄清楚如何.SetupXXX()调用. 任何人都可以阐明它应该如何工作?Mock<T>MockingKernel

0 投票
0 回答
219 浏览

unit-testing - 使用 MockingKernel 对抽象类进行部分模拟?

我有一个带有依赖项的抽象类,我想对其进行单元测试:

我想使用 NInject 的MockingKernel测试这个类,所以我鼓起了以下内容:

但我遇到了问题。它正在寻找一个无参数的构造函数来创建部分 BaseClass 模拟,而不是传入模拟的 IDependency。

查看源代码,MockingKernel 似乎永远不会在创建时将参数传递给模拟。

有没有办法用 MockingKernel 创建一个部分模拟?

0 投票
1 回答
103 浏览

c# - 使用匿名参数模拟

我正在尝试模拟我的存储库层,并且我有一个方法GetSelection(Expression<Func<T, Boolean>> where)。我正在使用带有Moq的Ninjects MickingKernel来实现这一点。

当我执行以下操作时,这很好:

但是当我尝试在我的表达式中添加一个额外的参数时,我得到一个ArgumentNullExeption

当我将服务更新为以下内容时:

如果我将 myObject.Id 更新为 1,这似乎很好。

任何想法为什么会发生这种情况?

0 投票
2 回答
92 浏览

ninject - Ninject MockingKernel 与破坏者

是否可以使用 MockingKernel 自动生成模拟对象,如果与之交互,将引发异常(又名破坏者)?

当您想要获取具有各种依赖项的对象时,这很有用,但您知道您的代码应该只与其中一些进行交互。如果您没有明确地Bind依赖(通过ToMock等),它应该返回一个在第一次与之交互时抛出异常的对象。

这比等到代码完成执行,然后编写一堆检查以确保您没有调用模拟要好得多。

这已经存在了吗?

0 投票
3 回答
2299 浏览

c# - 使用 Ninject MockingKernel Moq 如何为同一个接口注入多个模拟

我希望测试的 C# 类接受同一接口的 IEnumerable 实例。我使用 Ninject 进行依赖注入。我如何使用 Ninject MockingKernel Moq 将模拟注入 IEnumerable

这就是我的常规绑定的样子

像下面这样设置模拟只将最后一个模拟注入 Foo (应该注入 3 个模拟)

任何帮助表示赞赏。谢谢

0 投票
1 回答
554 浏览

c# - Mock a method returning an interface with NInject Mocking Kernel

Say I have an interface like this.

How do I mock the method which return an interface and a list of interface objects. I am using Ninject.MockingKernel.Moq

0 投票
1 回答
44 浏览

mocking - 部分模拟安全是一种好习惯吗?

我正在为使用 Ninject 和通用存储库的项目引入使用 NUnit、NSubstitute 的自动测试。

对于回归测试,我将通用存储库替换为内存中的存储库,以防止使用数据库。

此外,为了测试服务的安全约束,我正在模拟如下所示的安全服务:

每个回归测试都会像这样伪造当前用户:

基本上,它会注意替换基于上下文的方法(即HttpContext在我的情况下),但保持其他方法不变。

每个被测试的服务都会在这个初始化之后被实例化,所以我确信注入了合适的实例。

问题:可以像这样模拟服务还是反模式?

0 投票
1 回答
64 浏览

c# - MockingKernel 命名多重绑定作为构造函数参数

所以假设我有一个带有两个实现的接口

我有一个接受 aSword和 a的对象Dagger。我使用文档Named中描述的多重绑定。

当我在运行时情况下将它与正常绑定一起使用时,这很好用:

当我使用模拟内核时,这不起作用:

我收到以下类型的错误: