我的自定义约束收集有关预期值和实际值的消息。它们通过覆盖'WriteDescriptionTo'写入'MessageWriter':
public override void WriteDescriptionTo(MessageWriter writer)
{
writer.WriteExpectedValue(_expectedMessages);
writer.WriteActualValue(_actualMessages);
}
但在测试结果中,所有信息都在预期结果中:
预期:< 预期的第2项:预期可逆:真实 <> 在第2项实际:实际可逆:错误 > 但是:< UNSET>
注意:我在这里格式化文本失败了,它拒绝使用尊重我的换行符。所以这是结果文本的截图:
“但是:”部分仍然是< UNSET>
那么如何将实际文本送到正确的位置?
这不是一个大问题,只是真的很烦人,我似乎正在使用正确的方法,但它不会工作,甚至看起来像nunit中的一个错误。
答案 0 :(得分:1)
好的,我检查了NUnit的来源。无论您是否之前致电WriteActualValue
,实际行都是始终由框架生成。
相反,您应该将自定义约束的actual
字段(继承自Constraint
)设置为_actualMessages
内容(或者重构您的代码,以便在没有_actualMessages
的情况下生效所有)。这应该会带来您的预期输出。