在NUnit中是否存在挂钩,以便仅当断言失败时才执行代码,而不捕获异常本身。基本上,它应该接受断言失败时要执行的动作委托,然后重新抛出异常。为什么我需要这个? 当断言失败时,我需要比较两个对象并在屏幕上转储结果,以便于调试。NUnit:断言失败挂钩时执行代码
类似这样的工作,但是是一个糟糕的黑客,问题是它热切地评估ProcessCompareError,所以我有不必要的开销,再加上它不管它是否有错误。那么,是否有超载会接受断言失败时将执行的委托?
Assert.That(benefitLimitComparer.Compare(copyBenefitLimit, origBenefitLimit), Is.EqualTo(0),limitError, ProcessCompareError(origBenefitLimit, copyBenefitLimit));
}
}
}
private string ProcessCompareError(BenefitLimit origBenefitLimit, BenefitLimit copyBenefitLimit)
{
Console.WriteLine("Original: ");
ObjectDumper.Write(origBenefitLimit);
Console.WriteLine("Copy");
ObjectDumper.Write(copyBenefitLimit);
return "";
}
也许你可以写自己的'Assert'函数来代替,省去了挂钩的需要? – MEMark 2014-04-05 13:38:58