设置断点、进入方法、检查数据
最常用的开启测试对话框的方式是在Debug菜单中选择Start Debugging(快捷键:F5)。当执行开始之后,测试就会一直进行运行,直到出现断点、手动暂停、发生异常或者应用程序结束。
当测试暂停时,可以将鼠标移动到变量上面,通过数据提示框查看当前变量的值,可以打开Locals 和 Autos窗口查看当前的活跃变量和当前变量的值。为监视窗口添加一个或者更多的变量可以使用户能够在程序运行时更加注意变量的值的变化。
当用户暂停测试时,用户可以控制剩余未执行程序代码的执行方式。用户可以按行执行,可以从方法调用到方法本身执行,或者一步只执行一个调用方法。这些步骤称为单步调试。当然,用户可以恢复标准的应用程序执行方法,运行到下一个设定好的断点,或者运行到标记的光标位置。可以随时停止测试,测试器是为了必要的清理操作和退出机制而设计的。
例一:
在下面的例子中,在MainPage.xaml文件的MainPage构造函数中设定了一个断点,打开第一个方法,查看变量的值然后停止测试。
1)设置断点。
在MainPage构造函数的statement methodTrack = "Main Page";这一行设置断点。选择源代码编辑器里面的一行(快捷键:定位光标的位置并按F9键)。如下图11-7所示。
图11-7 设置断点
2)运行到断点。
通过选择Debugging菜单的Start Debugging开始测试(快捷键:F5)
程序开始运行,当运行到断点时,暂停运行,在侧边栏的当前行图标显示了当前的位置,并且当前的声明被突出。如下图所示:
现在控制了应用程序的执行,可以进入程序语句查看程序运行状态。
打开方法。在Debug菜单中,选择Step Into(快捷键:F11)。
注意,现在调试到了下一行,这是对Example方法的调用。再次选择Step Into,测试器会运行到Example方法的切入点,这表明这个方法已经被加载,并调用堆栈上的局部变量和已分配 的内存。
当进入代码的某一行时,测试器执行下面操作之一:
q 如果在解决方里面的下一个声明不是对某个方法的调用,测试器就会执行这个声明,并且运行到下一个声明,然后暂停执行。
q 如果在解决方案里面的下一个声明是对某个方法的调用,测试器会运行到这个调用方法的切入点,然后暂停执行。
3)继续执行Example1,直到到达退出点。
测试器会突出这个方法的闭括号。在数据提示框里面检查变量的值。当鼠标移动到变量名上面时,变量的名字、当前值和变量类型都会在数据提示框里面显示。
鼠标移动到变量a,就会指出其名称、数值和数据类型;移动到变量methodTrack,会自动指出其名称、数值和数据类型。
在Locals窗口中检查变量值。在Debug菜单中,显示Windows,然后选择Locals(快捷键:ALT+F4)如下图11-8所示。
图11-8 Locals窗口中检查变量值
Local窗口是参数和函数变量的树型视图,变量对象的属性是对象本身的一些子节点。对于每个表示对象本身对象方法来说,变量是一个隐藏的参数。在这种情况下,它表示的是MainPage类。因为methodTrack是MainPage类的一个成员,所以它的数值和类型都会列在下面一行,可以展开视图查看methodTrack变量的更多信息。
4)为methodTrack变量添加一个监视。
这个变量用于显示在示例中的调用方法,为了使得更加容易查看变量的值,可以将其添加到一个监视窗口中,在Locals窗口中右键单击变量名字,然后选择Add Watch。如下图11-9所示
图11-9 methodTrack变量添加监视
可以在监视窗口里面监视多个变量。当测试暂停时,在Locals和数据提示窗口里的被监视变量的值就会更新。可以从代码编辑器里面为监视窗口添加变量,选择要添加的变量右键单击,然后选择Add Watch,就可以将变量添加到监视。