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

时间:2014-05-19 21:23:32

标签: c# unit-testing nunit

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

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

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

  

预期:<   预期的第2项:预期可逆:真实   <>   在第2项实际:实际可逆:错误   >   但是:< UNSET>

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

nunit refuses to format test results correctly

“但是:”部分仍然是< UNSET>

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

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

1 个答案:

答案 0 :(得分:1)

好的,我检查了NUnit的来源。无论您是否之前致电WriteActualValue实际行都是始终由框架生成。

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