问题标签 [nbuilder]
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# - 生成对象时如何告诉NBuilder拦截getter?
我有这个 NBuilder 代码:
非常简单。
但它在评论中的这个属性上出错了:
基本上,我认为 NBuilder 正在尝试评估所有属性,包括 getter,但该 User 属性不存在。
即使我这样做:
它仍然错误。
有什么方法可以告诉 NBuilder 拦截该 getter,或者在它尝试评估它之前如何设置 User 属性?(从而防止错误)。
c# - 同一命名空间中的类和扩展方法容器类。有什么好处?
我在单元测试中尝试了 NBuilder。一个优秀的图书馆。但是,我无法解释以下类和接口的结构。
在
FizzWare.NBuilder
命名空间中:ISingleObjectBuilder
SingleObjectBuilderExtensions
在
FizzWare.NBuilder.Implementation
- 对象生成器`
ObjectBuilder
SingleObjectBuilderExtensions
只是IObjectBuilder
.客户端代码通常应该使用一个名为的类
Builder
,它有一个静态方法,可以为您提供ISingleObjectBuilder
. 您永远不需要在客户端代码中实例化任何类。
现在,我不明白SingleObjectBuilderExtensions
. 它会给设计带来任何好处吗?ISingleObjectBuilder
当两个接口在同一个命名空间中时,为什么不直接使用方法。
c# - 扩展方法将第一个参数转换为子类型。这个好吗?
在同样的情况下,我在这里有另一个问题。现在我有另一个查询。
在NBuilder中,FizzWare.NBuilder
命名空间包含接口ISingleObjectBuilder
和类SingleObjectBuilderExtension
,它是扩展方法的容器ISingleObjectBuilder
。
现在,扩展方法具有通用语法:
所以你可以看到,虽然方法 accept ISingleObjectBuilder
,但它期望参数是 anIObjectBuilder
的子接口ISingleObjectBuilder
。
现在考虑这个情景:
- 我已经实现了 MySingleObjectBuilder:ISingleObjectBuilder。
- 在我使用的客户端代码中,
FizzWare.NBuilder
我可以访问MySingleObjectBuilder.ExMethod()
- 当我这样做时,我显然得到了一个例外,因为
MySingleObjectBuilder
不是IObjectBuilder
.
当然,如果扩展方法是 for 会更安全IObjectBuilder
。现在的问题是,不是更安全的选择也更好吗?
c# - 如何使用将验证考虑在内的构建器自动创建测试数据
我正在使用NBuilder创建测试数据,并且我的类具有大量属性,因此手动创建是不可能的。在我使用 NBuilder 之前,我将一些 SQL 选择复制粘贴到 csv 文件中,并使用自动映射在测试中重新创建它们。现在我想使用 NBuilder 或其他东西,我面临实体/数据库限制的问题。
有什么方法可以告诉其中一些构建器在生成数据时考虑我的映射文件。例如,如果有一个映射
我希望框架能够根据这些要求为该属性生成测试数据。
c# - NBuilder - 如何创建包含多个派生类的集合
我有实体:
是否可以构建一个列表(集合)BaseEntity
但仅包含派生类的实例?
谢谢
编辑
我的意思是可以使用 NBuilder 创建列表Build<BaseEntity>
c# - 有没有办法用测试数据创建一个类型的实例?
我有一个类型,想用测试数据创建它的一个实例。
我知道像NBuilder或AutoFixture<T>
这样的框架可以创建在设计时( )已知的类型的实例。这些框架是否能够基于仅在运行时才知道的类型(Type
)创建实例?
最后我想做类似的事情:
c# - 让 NBuilder 构建列表列表
我的参数计数与 NBuilder 不匹配,基本上是在尝试建立一个列表列表,似乎找不到任何使用 NBuilder 执行此操作的示例:
c# - 收集时的 NBuilder 用法
我在这里找到了 NBuilder 的实现: https ://gist.github.com/markgibaud/4150878
这就像一个魅力,直到我需要在里面添加一些收藏。
例如:
我想用至少一条记录填充任何集合。
我最终得到了这段代码:
但是当我尝试调用构建方法时也存在一些问题。
unit-testing - NBuilder - 创建更多随机类型,例如 EmailAddress
现在我正在使用 NBuilder 在我的模拟存储库中生成客户。不幸的是,我对随机字符串的唯一选择似乎是 .Phrase()
我希望能够生成半敏感数据,例如电子邮件地址。有没有办法自定义 NBuilder 来做到这一点,或者我应该将两个带有 @ 符号的 .Phrase() 调用拼凑在一起?