我有一个做一些IO通常看起来像这样的方法:单元测试 - 不包括捕捞
public bool Foo()
{
try
{
// bar
return true;
}
catch (FileNotFoundException)
{
// recover and complete
}
catch (OtherRecoverableException)
{
// recover and complete
}
catch (NonRecoverableException ex)
{
ExceptionPolicy.HandleException(ex, "LogException");
return false;
}
}
的方法不是关键任务的完成,也有外部的恢复步骤 - 并且抛出NonRecoverableException相对常见 - 规范中它返回false,报告'此时无法完成',并且处理也随之移动。 NonRecoverableException不会使程序处于无效状态。
当我的单元测试,而这些例外之一被抛出,我得到
Activation error occured while trying to get instance of type ExceptionPolicyImpl
而且我想抑制有利于获得实际/原始异常信息而不是错误EntLib无法记录(并且实际上强制执行NonRecoverableException并且有一个[ExpectedException(typeof(NonRecoverableException))]单元测试,以确保此方法符合规范
我该如何解决这个问题?
编辑 使用预处理指令并不理想,因为我讨厌在代码库中看到特定于测试的代码。
那好吧;太棒了。非常感谢你。我打算将此标记为已接受,但在一天左右时间内,希望您能得到更多赞扬以获得如此好的答案。 – 2010-08-17 04:02:16