我有一个项目,我在其中创建了一个动态框架。在框架本身内部,而不是框架的测试中,我有以下文件:
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
}
它们是断言 clojure 引发异常的实用方法。这是为了弥补缺少的 Swift 的 XCTAssertThrows()
。
当然,我必须导入 XCTest
框架才能使用 XCTAssert
* 方法。但我无法实现它。
我不断收到错误消息,指出具有该名称的框架不可用。
你知道如何成功导入XCTest
吗?
非常感谢
最佳答案
我遇到了类似的问题并使用了 Nimble 中的build设置项目。解决问题:
1:添加到其他链接器标志:
-weak_framework
XC测试
-weak-lswiftXCTest
2:添加到框架搜索路径:
$(DEVELOPER_FRAMEWORKS_DIR)
$(PLATFORM_DIR)/Developer/图书馆/框架
现在动态框架可以导入XCTest。
旁注:我也想写一些类似的东西。我最终创建了 mini-framework for unit testing error handling in Swift ,也许有人会觉得它有用。适用于 CocoaPods 和 Carthage。
关于ios - 将 XCTest 导入动态框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33370408/