问题标签 [autofixture]
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.
c# - 使用 AutoFixture 对使用 Castle Windsor 的应用程序进行集成测试的技术
我是 AutoFixture 的新手,所以我不知道以下想法是否有意义或是否合理。我有一个我负责集成测试的应用程序,它大量使用了 Castle Windsor。为了简化依赖管理并使我的测试更像应用程序代码,我一直在我的测试初始化方法中构建 Windsor 容器,并使用 container.Resolve 来实例化我正在测试的代码。我想放弃这种方法,因为它在某些情况下限制了我的灵活性。
我想做的是进行如下所示的测试:
为此,我可以执行以下操作:
这样做确实有效,但我想避免的是需要将每个接口复制到从 Windsor 容器到 AutoFixture IFixture 的实现映射。
c# - 如何使用 AutoFixture 简化单元测试 DDD 值对象平等
我目前正在使用 xUnit、Moq 和 AutoFixture 为我的域项目编写单元测试。让我们看看这个测试方法:
如您所见,我正在测试类 CoreAddress 及其 SameValueAs 方法。要测试所有可能的情况,我必须创建测试方法OnOtherHasDifferentFirstname、OnOtherHasDifferentLastname等。这种模式可以吗?关于 AutoFixture 的使用,我能以某种方式简化这一点吗?
autofixture - 如何冻结 AutoFixture 中的空实例
我将 Autofixture 用作 SUT 工厂,并且在冻结空实例时遇到了困难。
我想做类似的事情:
但很快意识到这是错误的。我已经使用这个解决了这个问题:
但这似乎不对。
希望有人会为 HiveMind 提供正确的解决方案。
c# - 强制 AutoFixture 使用最贪婪的构造函数
我有一个具有多个构造函数的数据类型,我需要 AutoFixture 来选择最贪婪的(一个参数最多的)。默认行为是选择编号最小的构造函数。
作者的博客文章http://blog.ploeh.dk/2009/03/24/HowAutoFixtureCreatesObjects.aspx似乎并没有暗示有一种方法可以覆盖这种行为,所以有可能吗?如果有,怎么做?
moq - 通过带有 AutoMoq 的 AutoFixture 注入的模拟对象,意外行为
我刚刚使用 AutoFixture 创建了我的第一个测试。SUT 具有以下构造函数。
测试设置具有以下代码。
现在,当我检查 的内容时sut
,我看到IpAddress
注入的实例的属性IClientDataProvider
返回 null 而不是“whatever”。
我做错什么了?
我将服务和必要的接口复制到一个空项目中,然后模拟按预期工作。
作为实际项目中服务的构造函数参数类型的接口在 3 个单独的程序集中定义,这些程序集具有进一步的依赖关系。我在测试开始时遇到了几个意外的“无法加载程序集”错误,因为那些直接引用的程序集需要更多的程序集。所以这似乎是一个程序集加载问题。
但是,我尝试了测试的变体,手动创建 SUT 实例,使用 Moq 手动创建模拟对象,测试按预期工作
autofixture - 如何找出 AutoFixture 抛出 Kernel.OmitSpecimen 异常的原因
我正在研究一个相当嵌套的模型,它有一些循环引用。它还使用实体框架,因此所有列表都是ICollection<T>
. 为了适应这一点,我正在配置 AutoFixture,如下所示:
当我尝试创建类型时
AutoFixture 有问题并抛出以下错误
System.InvalidCastException:无法将“Ploeh.AutoFixture.Kernel.OmitSpecimen”类型的对象转换为“The.Model.Language”类型
如果我排除Session
type中的集合Language
,AutoFixture 会为图中的另一种类型抛出相同的异常。
有没有办法从 AutoFixture 中提取更多信息,例如导致错误的属性?
为什么 AutoFixture 试图将我的类型转换为 OmitSpecimen 以及在此过程中可能发生了什么来阻止它被转换?
我在这里为堆栈跟踪创建了一个要点。
更新
我设法重现了这个问题。给定这对对象
调用_fixture.CreateAnonymous<Session>();
将抛出强制转换异常。
unit-testing - Autofixture 和 WebApi 控制器
我正在使用 AutoFixture 尝试为 WebApi 站点测试我的控制器。如Ploeh 的博客所述,我正在使用带有 Moq 的 AutoData 功能。
我的控制器在构造函数中采用了 IDepartmentManager。这是我的测试:
当我运行此测试时,它失败并显示以下内容:
GetCallsManagerCorrectly 失败:
System.InvalidOperationException:获取理论数据时引发异常 Provision.Tests.WebApiControllerTests.DepartmentControllerTests.GetCallsManagerCorrectly:System.Reflection.TargetInvocationException:调用目标已引发异常。---> System.ArgumentException:只允许使用“http”和“https”方案。参数名称:System.Net.Http.HttpRequestMessage.set_RequestUri(Uri value)处的值
首先,这仍然是编写这些测试的有效且推荐的方式吗?我喜欢它使一切变得多么小。
其次,我应该怎么做才能解决这个问题?如果我将测试更改为:
它通过了,但是我失去了自动构建控制器的能力,如果我向构造函数添加参数仍然可以。
c# - AutoFixture 是否会被深圆形对象图所淹没
我正在使用的域模型有很多循环引用。事实上,可以从图中的任何点到达大多数对象。许多这些循环引用也在集合中。所以 aBooking
将有一个集合,Students
其中有一个集合,Courses
其中有一个集合,Bookings
依此类推。这不是真正的模型,只是一个例子。这个问题是由大约三十个不同类别的组合引起的。
为了使用这个模型,我像这样配置和使用 AutoFixture
这会导致 AutoFixture 运行大约 20 分钟,直到它最终以 OutOfMemoryException 失败。
这个模型是否要求 AutoFixture 创建一个永远不会结束的无限图?如果是这样,有什么方法可以配置它来限制图形的深度?
c# - AutoFixture 作为 Automocking 容器与 Automocking 的区别?
我开始使用起订量,但据我了解,即使我真的不关心它们,我也总是必须模拟所有可以调用的方法。
有时需要很长时间来模拟你忘记你想要做什么的东西。所以我一直在研究自动模拟,但我不确定我应该使用哪个。
我根本不知道如何使用第一个。我有点得到第二个,但从未真正尝试过。
我不确定一个是否比另一个更好。我唯一知道的是我已经在使用 AutoFixtures,这是第一个依赖项。
因此,从长远来看,使用第一个可能是有意义的,但就像我说的那样,我找不到任何关于如何使用它的基本教程。
编辑
我正在尝试遵循“Nikos Baxevanis”示例,但遇到了错误。
我认为这是因为我的 petapoco unitOfWork 财产
不知道我是否必须以某种方式或什么来模拟这个。
c# - 使用 autofixture 创建结构不会引发公共构造函数错误
我有一个结构,例如:
并想使用 autofixture 在我的单元测试中创建它。我尝试使用以下内容:
但这会引发AutoFixture was unable to create an instance
错误。是否可以使用 autofixture 自动创建结构?怎么可能做到这一点?请注意,我正在处理遗留代码,因此需要处理结构。:)
编辑 :
改变了
到
因为它与问题无关。