c# - 如何使用 nunit 约束获得格式正确的测试结果

标签 c# unit-testing nunit

我的自定义约束收集有关预期值和实际值的消息。它们通过覆盖“WriteDescriptionTo”写入“MessageWriter”:

    public override void WriteDescriptionTo(MessageWriter writer)
    {
        writer.WriteExpectedValue(_expectedMessages);
        writer.WriteActualValue(_actualMessages);
    }

但是在测试结果中所有信息都在预期结果中:

Expected: < On item 2 expected: Expected Reversible: True <> On item 2 actual: Actual Reversible: False > But was: <UNSET>

注意:我在此处格式化文本失败,它拒绝使用尊重我的换行符。所以这是结果文本的屏幕截图:

nunit refuses to format test results correctly

“但是是:”部分仍然是

那么如何将实际文本放到正确的位置呢?

这不是什么大问题,只是真的很烦人,我似乎使用了正确的方法,但它不起作用,甚至看起来像是 nunit 中的一个错误。

最佳答案

好的,我检查了 NUnit 的源代码。 实际总是 由框架生成,无论您之前是否调用过WriteActualValue

相反,您应该将自定义约束(继承自 Constraint)的 actual 字段设置为您的 _actualMessages 内容(或者重构您的代码在没有 _actualMessages 的情况下生活)。这应该会带来您预期的输出。

关于c# - 如何使用 nunit 约束获得格式正确的测试结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23747459/

相关文章:

c# - WPF中UncommonField<T>的使用

c# - 我如何在 C# 中使用 mysql 验证数据库中的现有用户名

entity-framework - 对使用 Entity Framework Core 1.1.2 调用的存储过程进行单元测试

c# - 我什么时候应该在 IEnumerable<T> 的上下文中使用 .Count() 和 .Count

c# - 反序列化 json 对象数组,其中包含 json 对象

visual-studio - Visual Studio 插件跳转到测试类

unit-testing - 如何在不在同一包中的gradle中执行多个测试类?

c# - Selenium 2.0 WebDriver 高级交互 DoubleClick 帮助 (c#)

c# - Xamarin : Testing Android application using Moq/NUnit and the MockContext?

asp.net-mvc-2 - mspec 有 nunit 还是没有 nunit 更好?