赞助商

使用前置条件测试Swift代码

发布时间:2019-05-15 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了使用前置条件测试Swift代码脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
你如何为具有前提条件的 Swift方法编写测试?这是一个例子:
func doublePositive(n:Int) -> Int {
    precondition(n >= 0)
    return 2*n
}

使用XCTAssertThrowsError不起作用:

func testDoublePositive() {
    XCTAssertEqual(10,testObject.doublePositive(5))    // Works
    XCTAssertThrowsError(testObject.doublePositive(-1)) // Breaks 
}

这在运行测试时会生成错误:

Thread 1:EXEC_BAD_INSTRUCTION (Code=EXCI386_INVOP,Subcode=0x0)

有没有办法测试Swift的前提条件?

解决方法

您可以通过仅使用满足这些前提条件的输入测试行为来测试具有前提条件的Swift方法.不满足前提条件时的行为是清楚的,无需进一步测试,因为前置条件被烘焙到标准库中.

如果您怀疑是否已正确指定前置条件,则可以将前置条件表达式拉出为布尔函数,然后测试该函数以正确识别无效输入中的有效值.

但是,您可以为自己创建您想要的内容:

An option to generate exceptions on precondition/assertion failures would do the trick: one would turn it on in debug builds,and turn it off in release builds.

您可以编写自己的函数,比如说,需要,而不是调用Apple的前提条件.这可以有条件地编译,以按您的意愿行事.然后,您将使用此处,否则您将使用前置条件.

总结

以上是脚本之家为你收集整理的使用前置条件测试Swift代码全部内容,希望文章能够帮你解决使用前置条件测试Swift代码所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签: