问题标签 [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.

0 投票
1 回答
473 浏览

c# - 停止儿童在 Moq/AutoFixture 中的嘲弄

我遇到了一个问题,即 moq 或 Ploeh.AutoFixture.AutoMoq 正在模拟所有子接口,而在一种情况下,我希望其中一个为空。

我正在使用 Npoc,它有一个名为 IDatabase 的接口

我不想 IDbTransaction Transaction { get; }被嘲笑,因为我希望它为空,但它被嘲笑了。

然后,我还有一个 IUnitOfWork,其中包含 IDatabase 接口。

// 代码

由于 Transaction 是一个只读属性,我不知道如何将其设置回 null。

0 投票
2 回答
1935 浏览

mocking - 此测试是否正确使用 AutoFixture 和 Moq?

此测试是否正确使用 AutoFixture 和 Moq?是否写得尽可能简洁?测试如预期的那样失败,并在编写正确的实现后通过。

0 投票
0 回答
113 浏览

autofixture - 如何使用 AutoFixture 根据父对象的属性分配子对象的属性?

我有一个有集合的Order对象。有一个名为 的属性。如何自定义 AutoFixture 以生成正确的订单?ShipmentsShipmentOrderIdorder.Shipments.All(s => s.OrderId == order.Id)

类图

我已经尝试了以下技术但没有成功:



做这个的最好方式是什么?

0 投票
1 回答
3947 浏览

moq - AutoFixture.AutoMoq:将值设置为只读属性

我将 AutoFixture 与 AutoMoq 一起使用。我尝试创建一个具有 getter 但没有 setter 的属性的类的假实例。我希望 AutoFixture 能够配置模拟,因此即使没有设置器,它也会返回给定的值。

我的代码是这样的:

不幸的是,“With”方法在这种情况下不起作用,因为自动夹具说 Data 没有任何设置器,这为什么我必须在之后通过直接调用模拟来设置值。

有没有办法让自动夹具自己做到这一点,所以我不需要最后一行代码?

编辑:我犯了一个错误,代码示例不起作用。它应该是

不过,如果有假实例的 with 方法会很好。

0 投票
3 回答
3256 浏览

moq - AutoData Theories with AutoFixture 使用手动假货

给定这个系统来测试:

而这个单元测试:

我应该如何将其转换为使用 AutoFixture.Xunit 和 AutoFixture.AutoMoq(同时仍使用手动伪造)?

在现实世界的测试中,手动伪造的界面和行为会更加复杂。请注意,我想将匿名变量(expectedResult 字符串)传递给手动伪造的构造函数。

0 投票
1 回答
1155 浏览

autofixture - 为什么使用 AutoFixture Freeze、SemanticComparison Likeness 和 CreateProxy 的简单测试不能通过?

我试图了解如何使用使用简单类CreateProxy()的两个实例的功能。Likeness<T>()

在下面的测试中,我使用了Fixture一个Create<T>具有Band两个字符串属性值的实例。

我尝试了许多不同的断言,但问题的关键似乎是该CreateProxy方法没有填充 的属性Band,因此即使我尝试比较Band具有相同属性值的两个实例,该CreateProxy方法中的实例总是有空值。

我一定是做错了什么,但是我已经阅读了我在 Ploeh 博客和 SO 上可以找到的所有内容,并且找不到一个足够简单的示例来与我正在做的事情进行比较。有任何想法吗?

0 投票
3 回答
13636 浏览

c# - Ploeh AutoFixture 无法从 System.Runtime.Serialization.ExtensionDataObject 创建实例

我们有一个引用 WCF 服务的 MVC 项目。这些引用(ExtensionDataObject)ExtensionData为每个 DTO 和 Response 对象添加了属性,现在AutoFixture无法创建这些类型的匿名实例。

例子:

代码:

例外:

Ploeh.AutoFixture.ObjectCreationException: Ploeh.AutoFixture.ObjectCreationException: AutoFixture 无法从 System.Runtime.Serialization.ExtensionDataObject 创建实例,很可能是因为它没有公共构造函数,是抽象或非公共类型。

问题:有没有办法在 AutoFixture 中注册这个对象,以便将它实例化为null或其他任何东西,这让我可以CreateAnonymous对所有具有ExtensionData属性的对象进行操作。

0 投票
1 回答
775 浏览

c# - 在 AutoFixture 自定义上调用 Dispose 方法

我正在使用 AutoFixture 自定义来测试访问 SQL Compact DB 的存储库。

测试完成后立即删除此数据库对我很有帮助。因为数据库是在自定义构造函数中创建的,所以我认为删除它的最佳位置是在 dispose 方法中。

我在想的代码是:

有可能做类似的事情吗?

0 投票
1 回答
1444 浏览

c# - Moq 断言一个抽象方法被调用

我正在使用 AutoFixture 为我的 Abstract 类编写单元测试,这代表了我正在尝试做的事情:

我的单元测试看起来像这样:

那么我如何断言受保护的抽象方法实际上是在DoSomethingCool方法中调用的呢?

如果它是来自注入依赖项的对象,我将能够使用Moq并断言该方法已被调用,但由于该方法是我的 Subject Under Test中的抽象方法,我如何断言该方法被调用?

0 投票
3 回答
7167 浏览

unit-testing - 如何将 Autofixture (v3) 与 ICustomization、ISpecimenBuilder 一起使用来处理构造函数参数?

我正在尝试克服一个场景,其中一个类具有一个字符串构造函数参数,该参数不能被 Autofixture 生成的任何旧字符串(Guid-y 外观值)所满足。

在您想简单地通过Mark Seemann 的 Ploeh 博客文章的基于约定的定制的链接来回答之前,让我说我一直在参考它和他的其他博客文章来进行这个测试,我无法访问经过。

当我单步调试时,我可以看到在某些时候构造函数参数传入了有效值,但测试仍然失败,并显示 Guid-y 颜色值。我认为这与Autofixture 填充“颜色”参数值和“颜色”属性有关。是不是我编写了一个解决构造函数参数的 ISpecimenBuilder,但我正在测试公共属性值(两个不同的东西)?

我知道所有这些对于示例来说都是多余的,但我设想了一个更复杂的场景,使用该Build<T>().With()方法不会是 DRY。

失败的测试

SUT

CompositeCustomization 实现(我知道此示例中不需要 AutoMoqCustomization())

叶特定的 ICustomization

带有颜色名称的字符串构造函数 ISpecimenBuilder