问题标签 [automoq]

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 投票
1 回答
3279 浏览

c# - AutoFixture 无法创建匿名 MVC 控制器

编码:

例外:

System.Reflection.TargetInvocationException:System.Reflection.TargetInvocationException:调用的目标已引发异常。---> System.NotImplementedException:方法或操作未实现。

MyController()接受 3 个参数。

我已经尝试了此处答案中描述的修复程序,但它不起作用。

0 投票
2 回答
1383 浏览

unit-testing - Automoq 文档

我开始使用 Automoq。我试图做这样的事情:

这运行 bu 失败。我的属性没有设置。我错过了 Automoq 的想法吗?什么是好的资源/教程?

0 投票
1 回答
662 浏览

moq - Autofixture:使用 AutoMoqCustomization 和 SetupAllProperties 填充模拟界面的所有属性?

我正在尝试让 Autofixture 设置并为我创建一个匿名的界面。我正在使用 AutoMoqCustomization,但我不断收到错误消息。

我的代码是

它实际上是错误SetupAllProperties

System.ArgumentException:对象实例不是由 Moq 创建的。参数名称:模拟

有人知道我在做什么错吗?

0 投票
1 回答
1277 浏览

c# - AutoFixture.Xunit's [Frozen] not working

I have a simple ViewModel which contains some buttons. The visibility of these buttons can be changed by events raised with the EventAggregator of PaP Prism which is also the only constructor parameter of this VM. The corresponding test works just fine when I don't use AutoFixture.

Unfortunately, it does not function like it is given here because the EventAggregator instance injected to the ViewModel by AutoFixture is another instance than the one injected into the test.

It seems to me, that the [Frozen] attribute does not work as expected but I am also not sure if a did every thing right. I was also wondering why Inject, instead of Register, does not work. I would have expected that their is no difference.

Thank you for your help.

Edit: I use version 3.7

0 投票
3 回答
3643 浏览

c# - 自动模拟 Web Api 2 控制器

我正在尝试在我的测试用例中自动模拟 ApiController 类。当我使用 WebApi1 时它工作得很好。我开始在新项目上使用 WebApi2,在尝试运行新测试后抛出了这个异常:

我的测试代码:

如果我手动创建 sut,测试用例确实有效:

似乎在尝试模拟 ControllerContext.RequestContext.ClientCertificate 时出现了问题我试图在没有它的情况下创建一个夹具(使用 AutoFixture .Without() 方法),但随后甚至旧测试也开始失败。

我的 AutoMoqDataAttribute:

WebApi 定制:

HttpRequestMessage 自定义:

用户控制器:

0 投票
1 回答
2968 浏览

c# - 带有 AutoMoq 和具体对象注入的 AutoFixture

我面临一个与具体类的自动模拟相关AutoFixture以及它如何处理的奇怪问题。AutoMoqCustomization我怀疑我没有很好地使用它,但想知道问题出在哪里。首先是她的一些背景。假设我有一个要测试的课程:

及其依赖类TenantProvisioningService(TenantProvisioningService 的依赖在这里不相关,因为它们会被自动模拟,我在测试中并不关心):

这是我的简单测试:

这不起作用,因为当我fixture.Create<IdentityApplicationService>()在其构造函数中调用 then 时,会注入一个具体的 TenantProvisioningService 而不是您可以在mockTenantProvisioningService.Object中找到的代理。

如果我像这样重写测试(注意夹具注入线),一切都会按预期工作(至少由我 :))

所以我的问题是:我做错了还是它应该是这样?如果不是,请给我解释为什么 AutoFixture 会这样。

0 投票
1 回答
535 浏览

c# - 防止 Moq 创建单例 Mocks

似乎模拟服务正在与消费者共享,就好像模拟接口是单例的。如果相关,我正在使用 AutoMoq/Moq 组合。

有没有办法确保每次创建消费实例时 IService 都是不同的实例?原因是:

当我创建我的两个测试实例时,它们共享这个单一的PauseTimer,并且当c1触发Begin函数时,两者都c1c2事件做出反应,什么时候才c1应该。

0 投票
2 回答
1241 浏览

c# - 为这个涉及命名 Unity 资源的单元测试设置模拟的正确方法是什么?

我想编写一个单元测试来检查特定的 Unity IoC 对象是否已实例化。

例如,这是我正在测试的课程。

这是我设置的单元测试

我遇到的问题是,如果命名类型不可用,Unity 2.0 不会回退到默认实例。因此,如果我注释掉_container.Resolve<IUploadModule>("Patients")客户端测试完美运行的行,并且如果我注释掉 _container.Resolve<IUploadModule>("Clients")患者测试完美运行,我只是不知道如何使它能够共存。


编辑:在正常操作中,我正在像这样重新排列两个对象。

0 投票
1 回答
566 浏览

c# - 为什么 moq 声称我的 mock 的属性设置器从未被调用,即使代码正在调用它?

我有以下单元测试:

我为使其通过而编写的代码是:

但是,VerifySet失败了:

对模拟的预期调用至少一次,但从未执行过:x => x.Path = "C:\test"

为什么它声称从未调用过setter?如果它有帮助的话FileSystemWatcherBase就是一个抽象类。

0 投票
1 回答
708 浏览

c# - 如何在 Moq 中使用 lambda 语法设置现有模拟?

Moq中有一种新语法,允许我使用

有时我自己不创建模拟(例如使用AutoData Theories时)。然后我必须使用旧语法设置模拟

我不喜欢这个有两个原因

  1. 它的可读性较差(恕我直言)
  2. 它迫使我混合新旧语法。

我更愿意使用类似的东西来设置现有的模拟

  • 这可能吗?
  • 如果没有,是否在路线图上?
    我假设也将为现有的模拟引入新的语法。
  • 如果没有,我怎么能自己实现呢?

我已经知道如何使用Mock.Get<>()and Mock.Of<>(),以及 mocks 和 mock 对象是如何相关的。

Moq 也是迄今为止第一个也是唯一一个向 Mocks 提供 Linq 的框架,因此可以更简洁地实现上述相同的行为

由于现在有两种方法可以创建和设置新的模拟,旧的方式和新的简洁方式,我希望它能够延续并包括设置现有的模拟。