问题标签 [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 投票
2 回答
5123 浏览

c# - 如何使用 moq 模拟控制器上下文

我正在尝试最小起订量框架,现在我遇到了障碍。以下单元测试失败,因为 ViewName 属性的实际值为空字符串。

谁能指出我正确的方向,为什么这没有通过测试?

下面还会产生一个空的 ViewName。

从网络上演示模拟和良好 TTD 的示例来看,我只是对要使上述第一个单元测试示例工作所需的其他管道感到困惑。

干杯,

安德鲁

0 投票
8 回答
4185 浏览

mocking - 我应该在生产代码中使用模拟吗?

我有一种情况,我需要在生产中模拟一些代码。这是为了使一部分代码工作在一半功能上。

我必须选择编写一个空类(实现接口),或者使用 moq 之类的模拟系统。

所以问题是,模拟系统会影响性能,还是会破坏生产代码的某些可读性?

更新
示例:

我发现我在生产中有一个 SimulationRocketSystem 类,那么小而且体内没有很多。模拟系统有一行代码(new Mock < IRocketSystem >().Object)来替换这样的类。

模拟的优点:
项目中的空类较少。

0 投票
7 回答
33409 浏览

c# - Moq:对依赖 HttpContext 的方法进行单元测试

考虑 .NET 程序集中的一个方法:

我想使用 Moq 框架从单元测试中调用此方法。此程序集是 webforms 解决方案的一部分。单元测试看起来像这样,但我缺少最小起订量代码。

问题

  • 我如何使用 Moq 来安排一个具有某些值的假 HttpContext 对象,例如“MyDomain\MyUser”?
  • 我如何将那个假货与我对我的静态方法的调用联系起来MyIdentityBL.GetSecurityContextUserName()
  • 您对如何改进此代码/架构有任何建议吗?
0 投票
1 回答
4201 浏览

c# - 模拟(使用 moq)返回模拟对象的方法的正确方法?

其中哪一个是正确的?

或者

我相信第一种方法是正确的,但我不确定 Moq 是否会在幕后发挥作用,只是想验证一下 :)

0 投票
2 回答
2985 浏览

c# - 基于 Moq 的单元测试中的 TargetParameterCountException

我们有具有“保存”方法的存储库。每当保存实体时,它们还会引发“已创建”事件。

我们一直在尝试使用 Moq 来模拟存储库......

这似乎不起作用,我总是得到一个例外:

System.Reflection.TargetParameterCountException:参数计数不匹配。

任何使用 Moq 模拟事件的示例都会有所帮助。

0 投票
1 回答
896 浏览

unit-testing - 似乎没有达到对模拟对象的期望(最小起订量)

我在 Moq 中遇到了一些奇怪的行为 - 尽管我设置了一个模拟对象以某种方式运行,然后在我正在测试的对象中以完全相同的方式调用该方法,但它的反应就像该方法是从来没有打电话。

我正在尝试测试以下控制器操作:

我的单元测试代码:

whereAssertThat只是我自己的一个类,带有一堆断言助手(因为Assert无法使用扩展方法扩展该类......叹息......)。

当我运行测试时,它repository.Verify()在线上失败,并带有MoqVerificationException

如果我删除repository.Verify(),集合断言失败,告诉我返回的模型是null. 我已经调试并检查了它query != null,并且我被带到了if运行代码的块的一部分。那里没有问题。

为什么这不起作用?

0 投票
2 回答
2457 浏览

c# - 这可以用 Moq 来嘲笑吗?

我正在模拟一些外部依赖项,并且在一个第 3 方类中遇到问题,该类将其构造函数作为另一个第 3 方类的实例。希望 SO 社区能给我一些指导。

我想创建一个模拟实例,SomeRelatedLibraryClass它的构造函数包含一个模拟实例SomeLibraryClass。我怎么能这样嘲笑SomeRelatedLibraryClass

回购代码...

这是我在测试控制台应用程序中使用的 Main 方法。

这是我用来包装一个第三方类并允许它最小化的类:

这是我正在使用的第 3 方课程的两个示例(您不能编辑这些):

0 投票
8 回答
2399 浏览

unit-testing - 极其琐碎的方法的单元测试(是或否)

假设你有一个方法:

你会写一个单元测试吗?

因为以后如果你改变方法的实现来做更“复杂”的事情,比如:

...您的单元测试会失败,但它可能不会破坏您的应用程序...

问题

我是否应该费心在没有任何返回类型的方法上创建单元测试*或**不要更改内部模拟之外的任何内容

0 投票
2 回答
3402 浏览

c# - Moq 转换 It.IsAny到 It.IsAny在期待中

我正在使用 Moq 进行单元测试,并且我已经建立了这样的期望:

它嘲笑的方法是:

这构建并运行良好,但是 VerifyAll() 没有通过,我得到的错误是:

所以它出于某种原因将异常更改为字符串....

有没有人以前见过这个/知道它为什么这样做以及我能做些什么来修复它/解决它?

谢谢!

0 投票
2 回答
3983 浏览

asp.net-mvc - 在模拟的 HttpContextBase 上设置属性

我正在开发一个 ASP.NET MVC 应用程序,并且正在尝试针对控制器操作编写一些单元测试,其中一些操作操作 HttpContext 上的属性,例如 Session、Request.Cookies、Response.Cookies 等。我是在弄清楚如何“安排、行动、断言”时遇到了一些麻烦……我可以看到安排和断言……但我无法弄清楚如何在模拟的 HttpContextBase 的所有属性上“行动”它的所有属性只有吸气剂。我无法从我的控制器操作中在我的模拟上下文中设置任何东西......所以它似乎不是很有用。我对嘲笑还很陌生,所以我确定我缺少一些东西,属性值,然后断言它们仍然是我设置的值,或者类似的东西。我错过了什么?