问题标签 [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# - 停止儿童在 Moq/AutoFixture 中的嘲弄
我遇到了一个问题,即 moq 或 Ploeh.AutoFixture.AutoMoq 正在模拟所有子接口,而在一种情况下,我希望其中一个为空。
我正在使用 Npoc,它有一个名为 IDatabase 的接口
我不想 IDbTransaction Transaction { get; }
被嘲笑,因为我希望它为空,但它被嘲笑了。
然后,我还有一个 IUnitOfWork,其中包含 IDatabase 接口。
// 代码
由于 Transaction 是一个只读属性,我不知道如何将其设置回 null。
mocking - 此测试是否正确使用 AutoFixture 和 Moq?
此测试是否正确使用 AutoFixture 和 Moq?是否写得尽可能简洁?测试如预期的那样失败,并在编写正确的实现后通过。
autofixture - 如何使用 AutoFixture 根据父对象的属性分配子对象的属性?
我有一个有集合的Order
对象。有一个名为 的属性。如何自定义 AutoFixture 以生成正确的订单?Shipments
Shipment
OrderId
order.Shipments.All(s => s.OrderId == order.Id)
我已经尝试了以下技术但没有成功:
做这个的最好方式是什么?
moq - AutoFixture.AutoMoq:将值设置为只读属性
我将 AutoFixture 与 AutoMoq 一起使用。我尝试创建一个具有 getter 但没有 setter 的属性的类的假实例。我希望 AutoFixture 能够配置模拟,因此即使没有设置器,它也会返回给定的值。
我的代码是这样的:
不幸的是,“With”方法在这种情况下不起作用,因为自动夹具说 Data 没有任何设置器,这为什么我必须在之后通过直接调用模拟来设置值。
有没有办法让自动夹具自己做到这一点,所以我不需要最后一行代码?
编辑:我犯了一个错误,代码示例不起作用。它应该是
不过,如果有假实例的 with 方法会很好。
moq - AutoData Theories with AutoFixture 使用手动假货
给定这个系统来测试:
而这个单元测试:
我应该如何将其转换为使用 AutoFixture.Xunit 和 AutoFixture.AutoMoq(同时仍使用手动伪造)?
在现实世界的测试中,手动伪造的界面和行为会更加复杂。请注意,我想将匿名变量(expectedResult 字符串)传递给手动伪造的构造函数。
autofixture - 为什么使用 AutoFixture Freeze、SemanticComparison Likeness 和 CreateProxy 的简单测试不能通过?
我试图了解如何使用使用简单类CreateProxy()
的两个实例的功能。Likeness<T>()
在下面的测试中,我使用了Fixture
一个Create<T>
具有Band
两个字符串属性值的实例。
我尝试了许多不同的断言,但问题的关键似乎是该CreateProxy
方法没有填充 的属性Band
,因此即使我尝试比较Band
具有相同属性值的两个实例,该CreateProxy
方法中的实例总是有空值。
我一定是做错了什么,但是我已经阅读了我在 Ploeh 博客和 SO 上可以找到的所有内容,并且找不到一个足够简单的示例来与我正在做的事情进行比较。有任何想法吗?
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
属性的对象进行操作。
c# - 在 AutoFixture 自定义上调用 Dispose 方法
我正在使用 AutoFixture 自定义来测试访问 SQL Compact DB 的存储库。
测试完成后立即删除此数据库对我很有帮助。因为数据库是在自定义构造函数中创建的,所以我认为删除它的最佳位置是在 dispose 方法中。
我在想的代码是:
有可能做类似的事情吗?
c# - Moq 断言一个抽象方法被调用
我正在使用 AutoFixture 为我的 Abstract 类编写单元测试,这代表了我正在尝试做的事情:
我的单元测试看起来像这样:
那么我如何断言受保护的抽象方法实际上是在DoSomethingCool
方法中调用的呢?
如果它是来自注入依赖项的对象,我将能够使用Moq
并断言该方法已被调用,但由于该方法是我的 Subject Under Test中的抽象方法,我如何断言该方法被调用?
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