加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用前置条件测试Swift代码

发布时间:2020-12-14 05:23:57 所属栏目:百科 来源:网络整理
导读:你如何为具有前提条件的 Swift方法编写测试?这是一个例子: func doublePositive(n:Int) - Int { precondition(n = 0) return 2*n} 使用XCTAssertThrowsError不起作用: func testDoublePositive() { XCTAssertEqual(10,testObject.doublePositive(5)) // W
你如何为具有前提条件的 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的前提条件.这可以有条件地编译,以按您的意愿行事.然后,您将使用此处,否则您将使用前置条件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读