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

.net - 如何发出具有仅在返回类型上重载的两个属性的 .NET 类型?

我需要创建一个具有两个同名属性的类型,并且只在返回类型上有所不同。通过反射动态发射这种类型是完全可以接受的。

像这样的东西:

我明白我不能从 C# 或 VB.NET 或许多其他 .NET 语言中使用此属性。

为了避免向我解释为什么我不想这样做的答案,让我解释一下我为什么需要它:我需要它来重现错误。

更具体地说,我在AutoFixture中有一个错误,其中某种类型的Moq会导致它在某些情况下引发异常。问题是 Moq 发出的类型包含两个名为“Mock”的属性,它们仅在返回类型上有所不同。

我想在单元测试中重现这种情况,但我不想仅仅因为这个单一的原因而依赖 Moq,所以我想在测试套件内部重现这种行为。

0 投票
1 回答
1648 浏览

c# - AutoFixture 重构

我开始使用 AutoFixture http://autofixture.codeplex.com/因为我的单元测试因大量数据设置而臃肿。我花在设置数据上的时间比编写单元测试要多。这是我的初始单元测试的示例(示例来自 DDD 蓝皮书的货物应用程序示例)

这是我尝试使用 AutoFixture 重构它的方法

我想知道是否有更好的方法来重构它。想做比这更短更容易的事情。

0 投票
1 回答
1320 浏览

tdd - TDD 系统被测创建模式(AutoFixture)

我正在尝试使用SUT 工厂“模式”来创建我的 SUT。

给定 SUT 结构:

我正在使用AutoFixture,并且想知道折叠以下规范和相关 SUT 工厂方法 [有价值但] 忙碌工作的最佳方法是什么:

类似于:

或者:

即,删除所有工厂垃圾,以便我的规范可以轻松应对过渡到:

虽然与自动模拟容器的概念有重叠,但我仍然不是在寻找金锤 - 只是一种能够一次模拟 0 或 1 个事物并且能够自定义创建依赖对象而无需每当其依赖关系集发生变化时,重新访问对 Sut 构造函数的显式调用。

(也使用 xUnit.net(SubSpec 风格)、Moq、Ninject2(虽然我不想在我的规范中使用 DI))

0 投票
1 回答
766 浏览

c# - Fixture.CreateAnonymous 方法在使用 AutoMoq 创建控制器时以错误 (AutoFixture) 杀死测试运行程序进程

我正在尝试使用 AutoMoqCustomization 和 AutoFixture 在单元测试中通过 Fixture.CreateAnonymous 方法创建一个 ASP.NET MVC2 控制器。我在 TestDriven.NET 下的 xUnit、xUnit 测试 GUI 和 MSTest 中都进行了尝试,结果都相同:运行测试的进程出现大规模故障。如果重要的话,在 Windows 7 x64 上。

要重现,只需创建一个新的 ASP.NET MVC2 项目,添加对 AutoFixture、AutoMoq 和 Moq 的引用(3.1,根据 AutoMoq 源)并尝试以下操作(下面的重现 VS2010 MVC2 项目链接):

在 MSTest 中,错误显示为:

运行时遇到致命错误。错误地址位于线程 0x2684 上的 0x6465f370。错误代码为 0xc0000005。此错误可能是 CLR 中的错​​误或用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM 互操作或 PInvoke 的用户封送错误,这可能会损坏堆栈。

AfWithMvc 复制项目(来自 SkyDrive)

0 投票
1 回答
1541 浏览

c# - 列表构造函数参数和 AutoFixture

使用autofixture,我试图构建匿名实例Project

这失败了,导致Project公共构造函数要求IList<Partner>

堆栈跟踪没有意义(至少 - 对我来说)。只是一些反射yada-yada:

失败:System.Reflection.TargetInvocationException :调用的目标已引发异常。
---- System.ArgumentException : 值不在预期范围内。
在 System.RuntimeMethodHandle._InvokeConstructor(IRuntimeMethodInfo 方法,Object[] args,SignatureStruct& 签名,RuntimeType declaringType)

那么 - 如何确保 autoFixture 传递匿名的合作伙伴集合以构建它?


这不是 的错IList<Partners>。还有一个参数叫做Priority. Priority本身在构造函数中持有MeasureMeasure持有IList<Indicator>和调用Guard.AgainstEmpty(indicators)

所以它看起来像这样:

施工方法失败Guard.AgainstEmpty。所以 - 问题变成了 - 如何确保 AutoFixture 在构建 foos 之前填充条形集合中的一些条形?

0 投票
1 回答
330 浏览

autofixture - AutoFixture 2 With() 不像在 AutoFixture 1 中那样工作?

我将我的测试移植到AutoFixture 2.0,我遇到了一些我无法解释或修复的奇怪行为。这个简单的测试对我来说失败了:

如果我更改Name为 的另一个属性,则测试成功File,这使我认为我有某种定制存在,Name因为当我使用 AutoFixture 1.0 时它不起作用。不过,我已经搜索了我的代码,但找不到类似的东西。

启用跟踪似乎没有多大帮助。

显示,除其他外:

FWIW,Name被声明为File的基类的虚拟属性,然后被File这样覆盖:

如果有人对我可能尝试的东西有任何想法,或者我可能无意中定制了Name属性的行为,我将不胜感激!

0 投票
1 回答
20922 浏览

moq - 什么是 AutoFixture AutoMoq?

当我注意到 AutoFixture AutoMoq 时,我正在查看 nuget 并想导入 moq。我看到 AutoFixture 有助于更快地编写 TDD,但我找不到 AutoMoq 的任何示例以及它与 AutoFixture 的不同之处。

有人可以指点我这个 AutoMoq,这样我就可以看到它在做什么。

0 投票
1 回答
7792 浏览

c# - 使用种子属性自定义 AutoFixture 构建器

我有一个用于集成测试的定制自动夹具构建器。代码如下。

问题 1 - 目前第一笔交易的 TransactionViewKey.TransactionId 为 1 等。如何设置 TransactionViewKey TransactionId 使其从方法参数 beginTransactionId播种?例如,返回一个 TransactionViews 数组,其中第一个 TransactionId 为 200,然后每个递增 1?

问题 2 - 用于确定 transactiondate 的 lambda 似乎只运行一次 - 因此每个日期都是相同的值。如何设置构建器,以便它为每个生成的实例运行随机日期生成器,而不是只运行一次?

谢谢

0 投票
1 回答
1311 浏览

autofixture - 带有嵌套集合的类 - 如何填充嵌套类?

对于将一个类与另一个类的嵌套集合进行水合,我有点困惑。我得到错误:

AutoFixture 无法从 System.Collections.Generic.IList`1[typename...] 创建实例

我尝试使用Fixture.Register()注册类型来填充内部类。我可以只做一个显示的样本

  1. 主要班
  2. 另一个类的嵌套集合 (IList/IEnumerable)。

我还注意到它Register()被标记为已过时,但Inject()CodePlex 上没有关于该方法的文档,所以我很难理解它应该如何工作。

0 投票
1 回答
790 浏览

c# - 如何使用 AutoFixture 创建匿名类的 IList

我之前在此链接上发布了一个问题:

带有嵌套集合的类 - 如何填充嵌套类?

我需要能够做同样的事情,但使用嵌套类:

像这样:

我试过这个:

但这不起作用,有什么想法吗?我正在使用 AutoFixture 2.0。