- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Swift 中,当有人使用 XCTest 断言时,他们可以编写如下断言:
XCTAssertTrue(foo.sameAs(bar), "\(foo) is not equal to \(bar)")
当断言无法让某人更多地了解事情失败的原因时,这可以提供额外的上下文。
还有更多这样的事情:
func printText(shouldPrint: BooleanType, text: String) {
if shouldPrint {
println("\(text)")
}
}
func textData() -> (BooleanType, String) {
return (true, "This is a test.")
}
printText(textData())
将成功编译并运行并打印出“This is a test”。但是,以下内容:
XCTAssertFalse(textData())
产生编译错误:类型“(BooleanType, String)”不符合协议(protocol)“BooleanType”
错误的原因是什么?可以采取什么措施(如果有)以使断言接受函数的返回值作为其参数?
最佳答案
XCTAssertFalse
需要一个 bool 参数,在这种情况下,您将传入一个元组 (Boolean, String)
在这种特定情况下,尝试提取 bool 元素:
XCTAssertFalse(testData().0)
它可以在 printText
中工作,因为只要类型匹配,Swift 就会自动将元组解压到函数参数中。
关于swift - 使 XCTAssertions 接受函数返回值作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28446453/
如果逻辑失败,如何停止单元测试的执行。下面是例子。如何在 XCTAssertEqual("Hello", "Hi", "Passed") 条件失败时停止执行。 func test_one() {
在 Swift 中,当有人使用 XCTest 断言时,他们可以编写如下断言: XCTAssertTrue(foo.sameAs(bar), "\(foo) is not equal to \(bar)
我正在尝试使用 XCTAssert 编写单元测试。我有一个 NSSet,我想测试这个集合是否包含任何对象。 我检查: XCTAssertTrue((mySet.count == 0), @"mySet
我有一个服务类,我想断言两件事 调用了一个方法 将正确的参数传递给该方法 这是我的课 protocol OAuthServiceProtocol { func initAuthCodeFlow
我经常看到这样的例子,其中 XCTAssert 和 XCTFail 在理论上等待预期的回调调用中使用。如果超时到期,会发生什么? 一个人为的例子(随意考虑 Swift 中的等价物,它们应该是相同的):
为什么会这样 var sb = NSStoryboard(name: "Main", bundle: nil) var wc = sb?.instantiateControllerWithIdenti
我正在学习单元测试和 XCode 的 XCTAssert 语句。 我有一种情况,我想根据环境的设置方式以动态方式按顺序测试一堆东西。 我正在尝试执行以下操作: for (i = 1, etc...)
对于 Swift 的 Dictionary 结构上的泛型方法,我有两个几乎完全相同的断言,但一个成功,另一个失败。我假设这就是 XCTAssert 的工作原理,但不明白为什么。有谁知道为什么? 如果该
XCTAssert() 和 Swift 中的 assert() 有什么区别? 最佳答案 XCTAssert 是来自 XCTest 框架的单元测试断言系列之一,应该只出现在单元测试目标中(即不在您的应用
所以我正在使用 XCTest 进行单元测试,但遇到了一个小问题。 当我编写一个包含速记数组声明和内部方法调用的 XCTAssert 语句时,Xcode 中会出现语法错误: XCTAssert([sel
我有一个类: class Person: NSObject { var name: String init(name: String) { self.name = na
XCTAssert 和 XCTAssertTrue 有什么区别?他们似乎在做同样的事情,如果是这样,为什么我们需要两者? 最佳答案 您建议此处存在冗余是正确的。事实上,它们绝对是相同的——也就是说,在
我是一名优秀的程序员,十分优秀!