我们正在尝试调试一些随机失败的单元测试。我们认为这是因为代码库在单元测试中不正确地混合了UI交互(即,在触发更新它们的服务请求时实例化ViewController)。
我正在尝试清理一下,但是我一直在收到这样的东西...
2019-01-15 11:05:37.500086-0500 [NAME REDACTED] [78259:9742813] ***由于未捕获的异常'NSInternalInconsistencyException'终止了应用程序,原因:'试图删除第1节,但只有更新前的0个部分”
问题是我们不知道哪个测试(或多个测试)导致了表的更新。更糟糕的是,我们甚至不知道它在哪张桌子上!调用堆栈在单元测试中不正确地挂在WaitForExpectations
调用上,该单元测试测试服务调用和响应,甚至没有引用,更不用说实例化与UI有关的任何事情了。
我们的猜测是从较早的测试中发生的,该测试触发了一些UI组件,该组件在内部触发了一些请求,并且响应在原始单元测试完成很长时间之后又返回了。那可以解释为什么它在完全不相关的测试中被打破。但这只是一个猜测,因为我们不确定如何真正中断导致真正的基础异常的行。
因此,正如标题所述,如何打破特定的例外情况?我尝试了符号断点毫无用处,而常规的All Exceptions
断点捕获的方式太多了,以至于变得更具侵入性而不是有用。我们只想打破这一例外。有可能吗?