所有标准的Xcode调试工具可以在执行测试时使用。
测试调试工作流
首先要确定的是导致失败的问题是在您正在测试的代码中的错误或正在执行的测试方法中的错误。测试失败可能指向几种不同类型的问题 - 您的假设,要测试的代码或测试代码本身 - 因此调试测试可以跨越几个不同的工作流。然而,你的测试方法通常相对较小和直接,所以最好首先检查测试的目的是什么以及如何实现。
以下是一些常见问题:
1.测试的逻辑是否正确?执行是否正确?
检查拼写错误和不正确的文字值总是一个好主意,您可能将其用作测试方法用作比较基准的参考标准。
2.有什么假设?
例如,您可能在测试方法中使用错误的数据类型,为您要测试的代码创建范围错误。
3.您是否使用正确的断言报告通过/失败状态?
例如,或许测试的条件需要XTCAssertTrue而不是XCTAssertFalse。有时很容易出现此错误。
假设你的测试假设是正确的,并且测试方法正确形成,那么问题就在于被测试的代码。是时候找到并修复它。
测试特定的调试工具
Xcode有一些专门的工具,专门用于帮助您在使用测试时定位和调试代码。
测试失败断点
在断点导航器中,单击添加按钮(+),然后选择添加测试失败断点以在开始测试运行之前设置特殊断点。
当测试方法发布失败断言时,此断点停止测试运行。这使您有机会通过在测试代码中的故障点之后立即停止执行来快速找到问题所在的位置。你可以在此视图中看到testAddition测试方法,比较字符串已被强制断言失败,通过设置参考标准比较到错误的字符串。测试故障断点检测到故障断言,并在此时停止测试执行。
当测试运行停止时,你停止测试的执行。然后在断言之前设置常规断点,再次运行测试(为了方便和节省时间,可以使用源代码编辑器中的Run按钮运行此测试),并进行调试操作以解决问题。
使用项目菜单命令运行测试
调试测试方法是记住菜单命令项目>执行操作>再次测试和项目>执行操作>测试的好时机。如果你正在编辑在故障后修复的代码或运行当前正在处理的测试方法,则它们提供了重新运行最后一个测试方法的方便方法。有关详细信息,请参阅使用产品菜单。当然,你可以通过使用测试导航器中的运行按钮或源代码编辑器来运行测试,无论哪个你觉得更方便。
助理编辑类别
辅助编辑器类别中添加了两个专门类别,专门用于测试。
1.测试来电者类别。如果你刚刚修复了应用程序中导致测试失败的方法,您可能需要检查该方法是否在任何其他测试中调用以及它们是否继续成功运行。使用源编辑器中的相关方法,打开助理编辑器,然后从菜单中选择测试类类别。弹出菜单将允许您导航到调用它的任何测试方法,以便您可以运行它们,并确保你的修复没有创建回归。
2.测试类别。这个助理编辑器类别与测试调用程序类似,但显示一个类的列表,这些类中有测试方法,它们引用您在主源代码编辑器中编辑的类。这是一个很好的方法来识别添加测试的机会,例如,到尚未并入调用它们的测试方法的新方法。
测试时的异常断点
通常,异常会在异常断点捕获时停止测试执行,因此通常在禁用异常断点时运行测试,以便在触发断开点时定位不适当的断点。当您在特定问题中归巢时,并且要停止测试以更正它时,您启用异常断点。