我有一个简单的测试:
func testAdd(){
let result = calc.evaluate(op: "+", arg1: 2.0, arg2: 9.0)
print("result - \(result)")
XCTAssert(result == 11.0, "Calculator operation failed")
}
它确实通过了,但是我尝试断点并在控制台中检查值,但是没有值,为什么?请看下面的截图:
当我右键单击“结果”(在左窗格中)并选择“结果”输出的打印说明为-(Double) result = <variable not available>
但是即使打印功能也可以打印该值。为什么?
答案 0 :(得分:0)
您的“结果”变量是一个临时的本地中间变量。
如果代码是在Release版本(而不是Debug版本)中编译的,则编译器可能已经优化了大多数中间变量,并以完全不同的顺序执行了相同的计算以获得相同的结果。因此,没有任何具有该值的变量可以在生成的运行代码中显示。
如果要查看变量值,请尝试在“构建”设置中切换为使用“调试”构建。或将所需的变量值分配给在另一个Swift文件中实例化的全局变量(Swift编译器优化这种变量的可能性很小)。