NUnit测试:如果抛出非预期的异常,是否可以保证IDisposable?

goo*_*gic 4 nunit idisposable exception

如果我在NUnit测试的TestFixtureSetup期间创建一个IDisposable,并且测试抛出一个意外的异常(例如外部资源失败),那么IDisposable的Dispose()会被调用吗?

添加>>
如果没有,NUnit是否可以保证执行TestFixtureTearDown或其他可用于清理的地方?

Dar*_*rov 6

不,它不会被调用.IDisposable用于通常与using语句一起使用的确定性终结.你可以调用Dispose方法TestFixtureTearDown.

  • 从NUnit 2.4开始,将在TestFixture上调用`Dispose()`,这样就可以为你的清理代码提供另一个位置.[关于2.4 Alpha的发行说明](http://www.nunit.org/index.php?p=releaseNotes&r=2.4.1):"如果对象实现了IDisposable,则在销毁之前调用Dispose" (2认同)