问题标签 [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 回答
104 浏览

xunit.net - AutoFixture 可以用来生成多个测试用例吗?

我已经开始尝试使用 AutoFixture。在我的研究中,我发现有InlineAutoDataAttribute一个可以用来生成具有不同输入参数的多个测试用例(给定一些要求)。但是,InlineAttribute同样InlineAutoDataAttribute只能处理编译const数据。所以我去寻找类似的东西MemberAutoDataAttribute,因为它MemberDataAttribute可以让我输入一个非“编译时常量”对象的集合,比如一个Exception实例的集合。可悲的是,这个属性不存在。

有什么方法可以重用使用 AutoFixture 的测试,以便它可以生成多个测试用例?这可以通过一些ICustomization实现来实现吗?

下面是我描述的情况的一个例子。请注意,这MyCustomAutoDataAttribute只是AutoDataAttribute导致AutoMoqCustomization为夹具配置的基本继承对象。

0 投票
1 回答
721 浏览

moq - Autofacs AutoMock 的目的是什么

嗨,我刚开始学习如何使用 IOC 容器。我选择了 Autofac 并注册服务以注入我的 MVC 控制器。

现在我想做单元测试。我知道起订量是为了模拟我的控制器需要的依赖项。但是 AutoFac 的 AutoMock 有什么用呢?我会有什么优势?

我注意到 AutoMock.GetLoose() 的容器构建器不知道主项目的注册。

0 投票
1 回答
1784 浏览

c# - 如何使用 AutoMock 模拟属性注入依赖项

如何模拟属性注入。

我在这里找不到类似的模拟属性注入。

0 投票
1 回答
479 浏览

c# - AutoFixture Freeze 返回空对象

我正在使用AutoFixturewithAutoMoqCustomization来提供所需的任何类依赖项的模拟。

我希望当我测试具有依赖项的类时,对该依赖项的任何方法调用都会返回该对象的 AutoFixtured 实例。

AutoFixture 正在为依赖项创建模拟,这些模拟正在返回对象,但对象是空的。任何可以为空的都将为空,任何不可为空的都将是默认值。

我知道我可以明确写

但我认为它可以在没有明确设置的情况下工作。这是预期的行为吗?

0 投票
1 回答
533 浏览

c# - 将 AutoFac 属性注入与 Moq 结合使用

考虑以下类:

这个类的测试:

在我的正常应用程序中,我使用 的属性注入功能Autofac.Core.NonPublicPropertyIService依赖项自动连接到ViewModelBase

在测试中,我使用Autofac.Extras.Moq集成包来自动模拟ViewModelBase. 但是,据我所知,仅支持构造函数注入Autofac.Extras.Moq。这会导致测试失败,因为该Service属性不是由 Moq 自动装配的。

有没有什么优雅的方式可以将 AutoFac 的属性注入功能与 Moq 结合使用?

0 投票
1 回答
342 浏览

mocking - AutoFixture AutoMoq - SetReturnsDefault() 不适用于夹具创建的模拟

我有一个模拟。这个模拟有两个方法,MethodA()MethodB()。我想将这两种方法都设置为返回false。我创建了各种版本的代码,它们都应该可以工作,但有些不能:

这些工作:

1.

2.

3.

这些不会:

4.

5.

6.

根据结果​​,罪魁祸首似乎是Fixture.Create()方法*。出于某种原因,如果模拟是使用fixture.Create()而不是new关键字创建的,它不会保留我使用SetReturnsDefault()设置的配置,即使模拟被冻结(意味着Fixture.Inject()被调用它)。有人可以解释为什么吗?


脚注:

*当您调用Fixture.Freeze()时, Fixture.Create()也会在内部调用- 冻结只是调用Fixture.Create()后跟Fixture.Inject()的简写

因此,这两个片段是等价的:

-

0 投票
1 回答
573 浏览

c# - Autofixture 使用静态延迟实例化创建对象

我有一个正在尝试测试的服务类,但遇到了一些困难

此类具有私有构造函数,因此必须从返回 Lazy _singleton 值的静态 Instance 属性创建它。

我正在尝试使用 AutoFixture 和 AutoMoq 创建我的对象,使用 Create() 方法,但它一直抱怨我没有公共构造函数。如果我将此构造函数设置为 public,我仍然会收到一个似乎来自 Lazy func 的错误。

有人可以帮忙吗?我可能有不同类型的设计问题。我不知道它是否可以轻松修复。

编辑 1: 我没有任何 IoC 容器,因此我可以将我的服务注册为单例。我试图使用这种方法来模拟依赖服务的注入,这样我就可以用 mock 编写测试。

我已经取得了一些进展,但我也不确定我是否喜欢它......无论如何我会分享我所拥有的

通过这种方式,我可以使用 AutoFixture 构建我的类并冻结注入服务的模拟。

我可以这样使用静态类

在我的测试中

0 投票
1 回答
496 浏览

c# - 从模拟的通用函数中自动返回夹具值?

我的测试使用 Moq 和 AutoFixture,它们通常非常冗长,因为它们有许多模拟 Setup() 调用来配置模拟以返回由 AutoFixture 创建的值。为了使测试更易于阅读和维护,我尝试将 AutoMoqCustomization 与 ConfigureMembers 功能结合使用,以避免不必要的 Setup() 调用。

大多数情况下,这是按预期工作的,但是我有一些带有 AutoMoqCustomization 似乎无法处理的通用函数(主要是 AutoMapper)的接口。我没有从 AutoFixture 返回该类型的实例,而是收到了一个模拟实例。

我可以通过包含通用函数的 Setup() 调用来实现我想要的行为,但我的目标是尽可能多地删除这些 Setup 调用。

我已经设置了下面的示例来重现问题(实际上我正在使用 AutoFixture 通过另一个对象的构造函数注入一个 IMapper 实例,并且该对象调用了 IMapper 接口,但这并不是看到问题所必需的行为)。

我期望调用 tosut.Map<object>()像调用 to 一样工作,返回在夹具中冻结sut.Map()的实例。object相反,在变量中,retB我看到了一个ObjectProxy.

在示例中包含设置返回值的注释行将Map<object>()导致测试通过,但我更愿意省略此调用,就像我可以省略 Setup() 调用一样Map()

通用功能是否应该自动配置?我设置不正确吗?

0 投票
0 回答
83 浏览

.net - 配置 AutoFixture.AutoMoq 以设置 DefaultValueProvider.Empty 而不是 DefaultValueProvider.Mock

不知何故 AutoFixture.AutoMoq 正在设置to的属性DefaultValueProvider,我需要以设置值的方式自定义 AutoFixture 。Mock<T>DefaultValueProvider.MockDefaultValueProvider.Empty

我似乎找不到办法做到这一点。

0 投票
0 回答
115 浏览

unit-testing - 单元测试卡在 asp.net core 2.1 中启动

这是以下代码。每当我运行此测试时,它都会卡在启动中……它适用于 [FACT] 但不适用于 [Theory]。可能是什么原因?它的解决方案是什么?