【问题标题】:What is the simplest way to completely replace an assertion message using FA (and nunit)?使用 FA(和 nunit)完全替换断言消息的最简单方法是什么?
【发布时间】:2017-03-27 03:34:43
【问题描述】:

例如;

results.Errors.Count.Should().Be(0, $"because {results.Errors[0]}");

产生结果消息:

Expected value to be 0 because 'Name' should not be empty., but found 2.

但我真正想要的是,在这个特定的实例中(调用断言)只是results.Errors[0] 的值,也就是说我希望消息是:'Name' should not be empty.

(顺便说一句,我真正想要的是传递整个 results.Errors 数组的串联字符串表示,但我的 linq/lambda 技能还没有)!

那么我怎样才能让 FA 只使用我提供的作为消息字符串?

【问题讨论】:

  • 您是在生产中使用 FA,而不是在单元测试中使用 FA?
  • 我正在尝试在我的单元测试中使用FluentAssertions,它使用nunit 来测试我的FluentValidations validators,它们在生产代码中。
  • 只需为测试方法提供“描述性”名称,每次测试只测试一件事(几乎每个测试一个断言)。然后你就不再需要消息了。失败测试的名称将提供足够的信息

标签: fluent-assertions


【解决方案1】:

你不能那样做。 because 部分被嵌入到语言中,以促进尽可能自然的失败消息。

【讨论】:

  • 这只是一个例子。消息文本由另一个组件 (FluentValidations) 设置,我想在其中提取断言消息文本。
猜你喜欢
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 2016-10-03
相关资源
最近更新 更多