问题标签 [moq-3]

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 回答
1364 浏览

c# - C# 模拟在实际代码中不起作用

我目前有以下代码方法:

使用以下测试代码调用它:

当我在实际代码中调用模拟对象的主机和端口时,它给了我\

但是,如果我从测试代码中调用模拟的属性,它会给我正确的存根属性:

如您所见,在实际代码中,它没有返回主机和默认端口,而在测试代码中,它为我提供了来自模拟框架的正确存根属性,而对象在两种环境中都是相同的。

当我使用模拟框架 Moq 而不是 FakeItEasy(如示例中所示)时,情况完全相同。

提前致谢。

0 投票
1 回答
2006 浏览

c# - 即使在 CallBase = true/false 之后,原始方法仍然在 Moq 中被调用

这是我的代码:

还有我的单元测试代码:

但它仍然调用原始方法而不是模拟的方法。这两个类都存在于同一个程序集中。

我已经搜索过它,几乎所有人都用CallBase = trueor得到了它false

任何想法上面的代码有什么问题?

0 投票
1 回答
273 浏览

c# - 用户未处理 MOQ 异常

我对最小起订量很陌生,我现在正在学习。我得到了需要编写单元测试的任务但是我得到了以下我无法找到的错误。请任何人帮我解决这个问题。如果我的测试用例需要更改,请查看代码并给我一些建议。

预期:IAcronisService.GetActivitiesFromDate("mygroup", 5/24/2016 8:33:34 PM) 调用失败,模拟行为严格.....

对于Save方法(我已在引发异常的 save 方法处发表评论)

处理方法调用保存方法

当我调试时,当我将鼠标悬停在上述处理方法的第一行时,我也看到了下面的行。我认为服务对象没有调用/模拟。这与上述异常有关吗?请提出一些改变。

(IAcronisServiceProxy)AcronisService).AcronisURL引发了 MOQ.MockException 类型的异常。

保存方法

我写的测试方法,

0 投票
1 回答
557 浏览

c# - 使用计数方法

我对 Moq 框架和单元很陌生。我的目标是向模拟对象插入一些信息,并希望能够计算插入当前值的对象数量。

我通过以下方式构建我的模拟:

我目前在我的模拟上下文中有两个策略。我想再添加两个具有相同名称“policy2”的策略,因此添加后我将拥有三个策略名称为“policy2”的对象。

我的添加策略功能:

检查断言的代码:

这段代码现在可以正常工作

0 投票
3 回答
2225 浏览

c# - 如何在模拟对象中创建模拟对象?

我的代码中有这两行。

现在,我正在创建一个单元测试。对象、客户和员工都受到保护,所以我需要模拟它们。

我已经成功地模拟了第一个并创建了一个模拟对象“客户”作为通过 ID 获取客户的回报。

如您所见,“员工”对象位于模拟对象“客户”内,这意味着我还必须在我的第一个模拟对象(客户)内提供一个模拟对象。我希望我的代码是这样的。

但是,尽管我在构建测试时没有任何错误。customer.employee 始终为 NULL。

0 投票
2 回答
991 浏览

c# - 如何在 ControllerContext 中模拟 DisplayMode 以进行单元测试 c#

我想在我的控制器中测试一个操作,该操作使用 controllerContext 作为参数来生成基于第 3 部分库“Rotativa”的 pdf 文档。
这是动作(功能)的实现:

这就是我试图让单元测试工作的方式:

  • 构造函数

    /li>
  • 测试功能

    当我执行测试时,出现以下错误: 在此处输入图像描述

测试名称:DetailsPrint_shouldPrint 测试全名:OPSReviewTest._2A1ControllerTest.DetailsPrint_shouldPrint 测试源:C:\inetpub\wwwroot\OpsReview\OPSReviewTest\Controllers\Api_2A1ControllerTest.cs:第 46 行测试结果:失败测试持续时间:0:04:39,3039007 结果 StackTrace :
在 System.Web.WebPages.DisplayModeProvider.GetDisplayMode(HttpContextBase context) 在 System.Web.Mvc.ControllerContext.get_DisplayMode() 结果消息:测试方法 OPSReviewTest._2A1ControllerTest.DetailsPrint_shouldPrint 抛出异常:System.NullReferenceException:对象引用未设置为对象的实例。

任何帮助或建议,谢谢。

0 投票
1 回答
351 浏览

tdd - 想绕过 Microsoft.Practices.EnterpriseLibrary.Logging 进行 MOQ 测试

我想测试我的代码,它依赖于 Microsoft 日志记录,我想模拟它或绕过它。在这种方法中,我正在验证输入。

它给了我以下错误“尚未为 Logger 静态类设置 LogWriter。设置它调用 Logger.SetLogWriter 方法。” 我的代码如下。

在模拟方法中,我正在编写以下代码。Ilogger 是我们的自定义记录器,我可以对其进行模拟,但“New Tracer(Gettype().NameSpace)”无法模拟。

现在我想在 Moq 中模拟 Tracer。

如果我在 Moq 中模拟上述代码,它会给我错误,即“附加信息:非虚拟(在 VB 中可覆盖)成员上的设置无效:mock => mock.GetType()”

我在 Moq 中的代码是

谢谢,

0 投票
1 回答
1693 浏览

c# - 使用起订量:模拟对象自动更新?

我是 MoQ 框架的新手。我正在使用 MoQ 框架为控制器编写单元测试,这是我的测试方法,

这是我的控制器方法,

测试运行,现在我想断言发送的 mockedItemDetail 和接收的模型结果 controllerItemDetail。

在上述情况下,mockedItemDetail 属性“Name”为空,并且接收到的 controllerItemDetail 属性 Name 为“Changed Name”。

但是每当我调试时,调用测试方法GetDetails()后,

  1. 我的 mockedItemDetail 属性 Name 在当前范围内也更新为“Changed Name”,我不知道为什么?这是 MoQ 的实际行为吗?

编辑内容

在下面的模拟列表中考虑与上述相同的情况,这里模拟对象的更改不会在所有上下文中更新。即 mockedItemDetailList 的列表计数保持为 0,即使在测试方法调用之后,controllerItemDetail 的列表计数仍为 1。为什么?

测试方法:

控制器方法:

0 投票
1 回答
10858 浏览

unit-testing - 如何模拟单元测试的配置文件

我有一个类,其中有一个无参数构造函数。但是当这个构造函数被调用时,类有五个属性从构造函数的配置文件中获取值。类中有两个方法使用在构造函数中初始化的参数。

我想使用模拟框架为两种方法编写单元测试。但是,我不确定如何初始化构造函数中的参数,因为调用该方法不会为这些属性提供值。

提前致谢,

0 投票
1 回答
57 浏览

c# - 所有 Moq 测试用例都通过而不检查任何逻辑?

我正在关注单元测试教程的介绍。

我还没有实现逻辑来确定应该返回“可能”、“拒绝”的信用评分,但最小起订量测试通过了所有单元测试。

我没有实现ICreditDecisionService,但起量测试通过了!你能解释一下这些代码有什么问题吗?