问题标签 [moq]

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 投票
0 回答
1444 浏览

asp.net-mvc - 如何对使用 AutoMockContainer 调用 Url.Action 的控制器进行单元测试?

这个问题与674458非常相似,但我真的很想在我的单元测试中使用 AutoMockContainer。我无法弄清楚如何设置我的上下文。

有没有人能够对使用 AutoMockContainer 调用 Url.Action 的控制器进行单元测试?

0 投票
2 回答
3297 浏览

unit-testing - 如何使用 StructureMap 2.5.3 自带的 MoqAutoMocker?

我正在尝试使用 StructureMap 附带的 MoqAutoMocker 类,但我找不到任何应该如何使用它的示例。我所要做的就是在 StructureMap 站点上使用 RhinoMocks 的示例

我想要做的是使用 Get 方法获取对我的自动模拟/注入依赖项之一的引用。根据上面的链接,我应该能够做这样的事情

请注意如何使用 AssertWasCalled,它指示 Get 函数返回对 RhinoMocks Mock 对象的引用?当我使用 MoqAutoMocker 时,同样的代码对我不起作用。

我有一个类 SignInController,它依赖于构造函数中的 ISecurityService。使用 MoqAutoMocker 就像示例中使用的 RhinoAutoMocker 一样,我想我应该能够做到这一点......

但问题是我永远无法访问 Setup 方法。在这种情况下,对 autoMocker.Get 的调用似乎返回了 ISecurityService 的实例,而不是 Mock<ISecurityService>

有没有人以这种方式成功使用 MoqAutoMocker?我只是做错了吗?

0 投票
2 回答
2923 浏览

c# - 在 Moq 中模拟 is 运算符

有没有办法让我的模拟模仿一种类型?我正在尝试做这样的事情:

但是,GetType不可覆盖。

有什么建议么?

0 投票
10 回答
93228 浏览

asp.net-mvc - 如何在 ASP.Net MVC 中模拟控制器上的请求?

我有一个使用 ASP.Net MVC 框架的 C# 控制器

我得到了一些关于模拟的技巧,并希望用以下和 RhinoMocks 测试代码

但是我不断收到此错误:

异常 System.ArgumentNullException:System.ArgumentNullException:值不能为空。参数名称:System.Web.Mvc.AjaxRequestExtensions.IsAjaxRequest(HttpRequestBase request)处的请求

由于Request控制器上的对象没有设置器。我试图通过使用以下答案中的推荐代码来使该测试正常工作。

这使用了 Moq 而不是 RhinoMocks,并且在使用 Moq 时,我使用以下内容进行相同的测试:

但得到以下错误:

异常 System.ArgumentException:System.ArgumentException:不可覆盖成员上的无效设置:x => x.Headers["X-Requested-With"] at Moq.Mock.ThrowIfCantOverride(Expression setup, MethodInfo methodInfo)

同样,似乎我无法设置请求标头。如何在 RhinoMocks 或 Moq 中设置此值?

0 投票
1 回答
252 浏览

asp.net-mvc - 如何对使用 DotNetOpenId 的 ASP.NET MVC 控制器进行单元测试?

我有一个AccountController,它的构造函数采用从我的自定义IOpenIdAuthentication接口派生的对象。默认情况下,这是一个包装OpenIdRelyingParty的OpenIdAuthenticationService对象。界面如下所示:

我可以模拟IAuthenticationResponse

但是,我不确定如何模拟IAuthenticationRequest,因为它看起来要复杂得多。有任何想法吗?

0 投票
2 回答
50839 浏览

moq - Moq 中 Verifiable() 的目的是什么?

目的是Verifiable()什么?

如果我验证 aMock并忽略它,它仍然会验证SetUp.

编辑:我因此使用VerifyAll()了验证所有内容的原因。更改为Verify()仅我.Verifiable() SetUp的 s 后正在检查。

0 投票
1 回答
192 浏览

moq - 我能从 Moq 获得一系列好的结果和抛出的异常吗

我正在嘲笑 MSMQ 的包装器。包装器只允许创建直接调用 MessageQueue 类的静态方法的对象实例。

我想测试阅读队列到筋疲力尽。为此,我希望模拟的包装器返回一些好的结果,并在第四次调用同一方法时抛出异常。该方法不接受任何参数并返回标准消息对象。

我可以在 Moq 中对方法设置这一系列期望吗?

0 投票
2 回答
16378 浏览

c# - 为 MVC 应用程序模拟 System.Web.Routing 中的 RouteData 类

我正在尝试测试一些依赖于 ControllerContext.RouteData 中的 Values 属性的应用程序逻辑。

到目前为止我有

单元测试失败并显示:System.ArgumentException:不可覆盖成员上的无效设置:r => r.Values

创建一个假的 RouteData 也不起作用,因为构造函数是 RouteData(RouteBase,IRouteHandler)。

这里重要的类是抽象类 RouteBase,它有方法 GetRouteData(HttpContextBase),它返回一个 RouteData 的实例,我试图伪造的类。带我兜兜转转!

对此的任何帮助都将受到欢迎。

0 投票
2 回答
2459 浏览

mocking - 如何设置模拟对象以在第一次调用时返回一个结果,其余的返回异常

我正在使用 Moq 库。我正在模拟一个执行所有常规 CRUD 功能的实例。我想将其设置为只允许对某个对象进行一次 Delete(x) 调用,并且对同一对象的所有连续调用 Delete(x) 都应返回异常。

我的 Delete() 方法返回 void。

我怎么做?

一些代码

0 投票
2 回答
3694 浏览

c# - 使用 MOQ 测试控制器

我在为我的控制器操作之一编写单元测试时遇到问题。这是详细信息。

这个视图是强类型的:

这是被测控制器中的方法:

这是给我带来问题的测试(nUnit,MOQ)的摘录:

由于不明确的调用,前三个 setup 语句将无法编译:

第四个将编译但在到达控制器操作中的 return 语句时抛出此错误:

我认为这无关紧要,但该方法有两个重载,GetAll() 和 GetAll(int UserId)。我确信它与 List 上的 OrderBy 有关系,但我对 Func 概念很不满意。谢谢你的帮助!