调试测试

    所有标准的 Xcode 调试工具在执行测试时都可以使用。

    要确定的第一件事情是:造成测试失败的问题是测试中的代码有 bug 还是执行的测试方法存在 bug。测试失败可以指出一些不同类型的问题—既有你的假设,正在测试中的代码需求,也有测试代码本身—所以调试测试可以横跨几个不同的工作流。然而,通常你的测试方法是相对较小和直接的,所以最好首先检查测试的目的是什么,以及它是如何实现的。

    值得注意的一些常见问题:

    1.测试的逻辑是否正确?实现是否正确?
    测试方法用作比较基础使用的字面值,检查它们的笔误和错误始终是个好主意。

    2.假设是什么?
    例如,你可能在测试方法里使用了错误的数据类型,创建了一个你所测试的代码的范围错误。

    假设你的测试假设是正确的,并且测试方法也正确,那么错误一定在测试的代码中。现在来定位并修复它。

    具体的测试调试工具

    Xcode 有几个工具专门用来在你测试时定位和调试代码。

    在断点导航面板中(breakpoint navigator),点击 Add (+) 按钮,选择 Add Test Failure Breakpoint 设置一个特殊的断点。

    当测试方法触发了失败断言,这个断点会终止测试的运行。在测试代码发生错误点后马上停止运行,可以让你快速的找到问题发生的位置。你可以看看 testAddition 测试方法,通过为错误字符串设置用来比较的参考标准,比较字符串被强行断言为失败。测试失败断点检测该失败断言并停止了该点测试的执行。

    调试测试 - 图1

    调试测试方法时,最好记住菜单命令 Project > Perform Action > Test Again 和 Project > Perform Action > Test。如果你正在测试失败发生后编辑修复代码,或运行你正在编写的测试方法,它们提供了一个便捷的方式来测试最后一个方法。更多信息请查看 。当然你也可以始终使用测试导航面板或源代码编辑器侧边栏中的“Run”按钮来运行测试,都很方便。

    辅助编辑器分类中增加了两个专门的分类来运行特殊的测试。

    1.Test Callers category。如果你修复了一个引起应用测试失败的方法,你可能会想要检查该方法在其他测试中是否被调用并成功运行。带着这个问题,在源代码编辑器中打开辅助编辑器,并从菜单中选择 Test Classes 分类。你可以从下拉菜单定位到任何调用它的测试方法,这样你就可以运行它们,以确保你的修复没有造成其它问题。

    2.Test Classes category。该分类和 Test Callers 类似,不过显示的是包含测试方法的类列表,这些方法与主源码编辑器中编辑的类相关。对于增加测试来说,这是个好机会,例如,给还没有被并入测试方法中的新方法增加测试。