问题标签 [fluent-assertions]
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# - 如何在 C# 的 foreach 循环中使用 fluentassertions 引发异常
我正在为字典运行 foreach 循环,并ShouldThrow
用于在测试失败时引发异常。
但是循环在第一次失败时退出。有没有办法推迟实际违规并将它们作为单个异常抛出?
fluent-assertions - 流利的断言仅包含
使用 FluentAssertions,我想检查一个列表是否只包含具有某些值的对象。
例如,我尝试使用 lambda;
但是,不允许使用此语法。
c# - FluentAssertions,确保 IEnumerable 仅包含单个元素
我正在编写单元测试,我有一些看起来像这样的东西:
并GetFoos()
返回和IEnumberable<Foo>
c# - 如何(正确)使用 FluentAssertions 排除只读属性?
我想与排除只读属性的FluentAssertions很棒的方法进行深入的对象比较。ShouldBeEquivalent
以下作品:
但PropertyInfo
被标记为已过时,并带有警告“此属性将在未来版本中删除。请SelectedMemberInfo
改用。” 该类型包含 contains Name
、MemberType
和DeclaringType
仅此而已,因此不足以对属性进行某些检查。(在内部看起来实例实际上是 a PropertySelectedMemberInfo
,它没有添加更多内容。)
那么,对属性进行此类检查的推荐的、非过时的方法是什么?是否SelectedMemberInfo
仍在进行中?
c# - FluentAssertion 在 Mongo DateTime 比较中失败
我有一个使用FluentAssertion的单元测试,类似于:
最新的断言失败并显示以下消息:
如您所见,FluentAssertion 报告相同的日期时间,但仍然失败。
在这种特定情况下,我的注册表后端是 MongoDB,我通过最新的 C# driver访问它。但是,它可以使用特定断言不会失败的其他后端(例如 Zookeeper 或 Consul)。
所以我的猜测是问题来自 Mongo C# 驱动程序,而不是来自 FluentAssertion。我在 Mongo 中使用了 DateTime 序列化选项(我在任何地方都使用 UTC,这似乎也是 Mongo 的默认设置),但没有成功。知道可能出了什么问题吗?
谢谢你的帮助。
c# - 如何使用 Fluent 断言检查列表是否排序
我正在使用 specflow 编写一些单元测试,并且需要一种方法来检查对象列表是否按特定属性排序。目前我正在这样做,但我不确定这是否是最好的方法。
有没有一种很好的方法可以使用 Fluent Assertions 来完成?
c# - FluentAssertions 类型检查
我尝试使用FluentAssertions来检查我的 UnitTest,项目列表中的属性类型是某种类型。
不幸的是,我的测试失败并显示以下错误消息:
预期类型为 TypeB,但找到了 System.RuntimeType。
为什么它说,它找到了System.RuntimeType
?我使用调试器来验证,那MyProperty1
是类型TypeB
,它是……我用.BeOfType<>
错了吗?
c# - FluentAssertions WhenTypeIs double.NaN
我有两个复杂的对象,里面有不同的类型(对象、字符串、双打等)。我想通过使用以下代码来比较它们:
我正在尝试使用该.BeApproximately
行为比较双类型属性值,但由于一种特殊情况而无法正常工作:
有时我有一个
double.NaN
内部双精度数,并且将一个 NaN 与另一个 NaN 进行比较会给出一个断言失败(因为 BeApproximately 行为)。我怎样才能跳过比较,或者在这种情况下使它成为真的?最后,如何打印导致断言失败的对象的名称?
提前致谢。
编辑>>>>
我找到了第一种方法(感谢@Sam Holder):
我的断言转储看起来像:
“MyObjectName”:预期成员 Foo.Bar 为 0 +/- 1E-05,但找到 1,39675
“MyObjectName”:预期成员 Foo.FooBar 为 2,07781 +/- 1E-05,但找到 2,98412
...更多断言失败...
我希望它在打印所有失败之前只打印一次objectName 。
更新>>>>
我想要的行为尚未在 github 上实现:https ://github.com/dennisdoomen/fluentassertions/issues/310 。被标记为增强。谢谢你的帮助。
c# - 更新到最新的 FluentAssertions 打破了我的单元测试
我正在尝试使用最新版本的 FluentAssertions (4.0.1) 更新我的 Unittest 项目,但由于 API 的更改,我的测试不再编译。在更新之前,我使用的是 3.4.1 版本,以下代码已编译并成功运行。
测试序列化和反序列化类的实例,然后使用 FluentAssertions 比较两个对象,并设置排除用IgnoreDataMemberAttribute
.
SoPropertyInfo
不再存在,我必须使用ISubjectInfo
,但是没有提供的属性(SelectedMemberInfo
等)可以帮助我使我的测试运行为绿色。
我现在的问题是,如何更新我的测试代码,它适用于 FluentAssertions 4.0.1?
c# - 断言两个对象完全等价
在下面的简单示例中,我尝试找到一个Should()
使测试通过并失败的断言,就像我在评论中描述的那样。我目前使用result.ShouldBeEquivalentTo(expectedResult, o => o.RespectingRuntimeTypes())
的那个在最后两个测试中没有失败。目标是result
并且excpectedResult
应该始终具有完全相同的类型和值。