问题标签 [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.
unit-testing - 使用 Autofixture 的 CreateProxy 来使用 Likeness、SemanticComparison 功能时遇到问题
在我之前询问过 Autofixture 的CreateProxy 方法的问题中,发现了一个潜在的错误。
我不认为这个失败的测试是因为这个,而是我对 Likeness.Without(...).CreateProxy() 语法如何工作的持续困惑。考虑以下失败的测试,在该测试中,我通过创建对象的新实例使原始测试 变得稍微复杂一些,并认为它的创建是SUT:
这是乐队:
我之前的问题不够复杂,无法帮助我理解 the Source
of theLikeness
通常应该是什么。
源是否应该是SUT的输出,在这种情况下,它将与 AutoFixture 创建的模板实例进行比较?
或者源应该是 AutoFixture 创建的模板实例,在这种情况下它将与SUT的输出进行比较?
编辑:更正了测试中的错误
我意识到我错误地将属性分配给了template.Brass
新实例的和属性Brass
。更新后的测试反映了更正,并且所有六个断言现在都通过了。Strings
Band
var createdBand = new Band {Brass = template.Brass, Strings = template.Strings}
autofixture - 为什么 Autofixture Likeness 的行为不像我对这两个测试之一所期望的那样?
鉴于这些类:
为什么这个测试通过...
……这个失败了?(区别在于DrumAndBaseBand
实例化)
c# - 忽略虚拟属性
我们有用于存储的实体框架的 MVC4 项目。对于我们的测试,我们最近开始使用 Autofixture,它真的很棒。
我们的模型图非常深,通常通过 AutoFixture 创建一个对象会创建整个图:人员 -> 团队 -> 部门 -> 公司 -> 合同 -> ....等。
这个问题是时间。对象创建最多需要一秒钟。这会导致测试缓慢。
我发现自己经常做的是这样的事情:
这很有效,而且速度很快。但是这种过度规范使测试难以阅读,有时我会丢失一些重要的细节,比如.With(c => c.PersonId, 42)
在 unimportant 列表中.Without()
。
所有这些被忽略的对象都是 Entity Framework 的导航属性,并且都是虚拟的。
有没有一种全局方法来告诉 AutoFixture 忽略虚拟成员?
我尝试过创建ISpecimentBuilder
,但没有运气:
我似乎无法找到一种方法ISpecimenBuilder
来检测我们正在构建的对象是另一个类中的虚拟成员。可能ISpecimenBuilder
这不是执行此操作的正确位置。还有其他想法吗?
c# - Autofixture:如何以声明方式表达以下代码?
我无法以声明性方式表达以下代码:
在我的生产代码中,我有类似的东西:
SomeClass 的构造函数定义为:
TIA,
大卫
编辑:
SomeClass 看起来像
c# - 为类型创建 AutoFixture 样本生成器
在这种情况下,我正在为特定类型创建 AutoFixture 样本构建器System.Data.DataSet
。构建器将返回 a FakeDataSet
,这是为测试定制DataSet
的。
以下内容不起作用,dataSet
始终返回 null,即使在DataSet
请求 a 时也是如此(我可以通过深入request
研究属性来判断)。
这种变化确实有效,但似乎过于复杂。感觉好像有更好的方法来完成同样的事情,而我只是错过了一些东西。
unit-testing - F# UnitTest 项目中的 AutoFixture 未在测试资源管理器中显示单元测试
我有一个 Visual Studio 2012 项目并安装了以下 NuGet 包:
- 使用 Moq 进行自动模拟的 AutoFixture
- 使用 xUnit.net 数据理论的自动夹具
- 自动夹具
- 起订量
- xUnit.net:扩展
- xUnit.net:跑步者
- xUnit.net
给定以下人为的 Logger 类 (Logger.fs):
和以下单元测试:
在确保我显示所有测试并构建项目后,测试资源管理器无法识别单元测试。项目构建正确,在构建、常规或测试输出日志中没有错误或警告。
如果我用 Fact 属性替换当前的 Theory 和 AutoData 属性,就会出现测试。
F# 测试项目是否支持 AutoFixture?其他人可以复制这个并知道我做错了什么吗?
c# - Autofixture Fixture.Build().With() 在相同的属性名称上
当我使用“with”方法设置属性时,它会将同名的嵌套对象上的所有属性都保留为空。
(我使用 autofixture 的最新版本为 3.0.8)
在这种情况下,obj.Id == "something" 等于 true,但 obj.Things[0].Id == null 也等于 true。
我认为有错误或我弄错了;有人可以帮忙吗?
autofixture - AutoFixture 的新手试图了解它,但我看不到它对我有帮助
目前,我正在使用定制的假对象,在幕后使用 NSubstitute 来创建实际对象,但随着项目的发展,它变得非常难以维护,所以我正在尝试寻找替代品,我希望 AutoFixture 是适合工作的工具。
我阅读了文档,但我很挣扎,因为几乎没有文档,而且我阅读了 Mark Seemann 的大部分博客文章,包括 CheatSheet。
我很难掌握的一件事是如何使用具有参数的构造函数创建一个对象,在我的情况下,我需要将参数传递给 CsEmbeddedRazorViewEngine 以及将 HttpRequestBase 传递给 ControllerContext。
我看到的方式是我需要创建一个假对象,最后创建一个自定义对象,将它们注入到
我还研究了 NBuilder,在那里传递参数似乎稍微简单一些,但我听说过关于 AutoFixture 的好消息,我想试一试。:)
我正在尝试减少我拥有的假对象的数量,所以这是一个真正的测试,我怎样才能用 AutoFixture 做同样的事情?
PS 我使用 xUnit 作为我的测试框架和 NSubstitute 作为我的模拟框架我应该安装 AutoFixture.Xunit 和 AutoFixture.AutoNSubstitute 吗?
更新:在越来越多地了解它之后,我想它不是适合这项工作的工具,因为我试图用 AutoFixture 替换我的测试替身工厂,而不是用它设置我的 SUT。
由于奇怪的原因,我认为它正在做同样的事情 NBuilder 正在做的事情,从我所见,它们是非常不同的工具。
所以经过一番思考,我想我会去改变我在我的测试替身工厂中拥有的方法到对象,然后使用 AutoFixture 创建我的 SUT 并将我的测试替身注入它。
c# - AutoFixture:如何从 System.Type 创建匿名
我只需要使用 System.Type 从 AutoFixture 创建一个对象。但是,似乎没有CreateAnonymous()
简单地采用类型的重载。他们都期望编译时通用 T。有没有办法将 System.Type 转换为 T?
编辑使用细节:
我正在使用 AutoMapper,它有一个用于注入组件以支持复杂映射场景的钩子:
从签名中可以看出,客户端可以注册Func
AutoMapper 在需要注入服务(主要是 ValueResolver 实现)时调用的。
在生产构建中,此方法调用我的 StructureMap 容器以检索组件。但是,当对我的映射代码进行单元测试时,我必须提供存根实现,否则 AutoMapper 会引发异常。由于我使用 AutoFixture + Moq 作为我的自动模拟容器,让 AF 新建一个完全水合的存根似乎很自然,这样我就可以专注于编写单元测试代码。
c# - 在这种情况下如何使用 AutoFixture?
我有以下代码:
并且通过了测试。
然后我尝试使用 AutoFixture,如下所示:
失败了。特别是,patientRecord
在第二种情况下,没有正确填充。
我在这里做错了什么?