jol*_*ger 12 ios xctest swift ios9
我有一个项目,我已经创建了一个动态框架.在框架内部,而不是框架的测试,我有以下文件:
import Foundation
import XCTest
public func assertThrowsException(function: () throws -> Void) {
XCTAssertTrue(doesItThrowException(function))
}
public func assertDoesNotThrowsException(function: () throws -> Void) {
XCTAssertFalse(doesItThrowException(function))
}
private func doesItThrowException(function: () throws -> Void) -> Bool {
do {
let _ = try function()
} catch {
return true
}
return false
}
Run Code Online (Sandbox Code Playgroud)
它们是断言clojure引发异常的实用方法.这是为了弥补失踪的Swift的XCTAssertThrows().
当然,我必须导入XCTest框架才能使用XCTAssert*方法.但我无法实现它.我一直收到一个错误,即该名称的框架不可用.
你知道如何成功导入XCTest吗?
非常感谢你
小智 25
我遇到了类似的问题并使用了Nimble项目的构建设置.解决问题:
1:添加到其他链接器标志:
-weak_framework
XCTest
-weak-lswiftXCTest
2:添加到框架搜索路径:
$(DEVELOPER_FRAMEWORKS_DIR)
$(PLATFORM_DIR)/Developer/Library/Frameworks
现在动态框架可以导入XCTest.
旁注:我也想写类似的东西.我最终在Swift中为单元测试错误处理创建了迷你框架,也许有人会发现它很有用.适用于CocoaPods和Carthage.
| 归档时间: |
|
| 查看次数: |
1438 次 |
| 最近记录: |