swift - 为什么我的单元测试不能访问模型中的公共静态常量?
问题描述
我的项目结构如下图所示:
类Exposure
:
class Exposure: ObservableObject {
@Published var selected = [Int](repeating: 0, count: 3)
private static let File = readFile()
public static let Triangle = K.SettingIncrementKeys
.map { readValues(json: File, key: $0) }
...
}
类XCTestCase
:
import XCTest
@testable import Exposed
class Exposure: XCTestCase {
public func testJSONLoading() throws {
let triangle = Exposure.Triangle
XCTAssertEqual(triangle.count, 3)
}
}
我收到一个编译错误“类型‘曝光’没有成员‘三角形’”。如何让测试看到静态场?
解决方案
您重新声明与原始类同名的测试,因此本地模块Exposure
没有Triangle
明显的成员,使用类似
// name test differently !!
class ExposureTest: XCTestCase {
public func testJSONLoading() throws {
let triangle = Exposure.Triangle
XCTAssertEqual(triangle.count, 3)
}
}
推荐阅读
- c++ - 如何从第一个参数推断出第二个参数类型?
- swift - 如何在 Swift 中的 View 中控制 TableView
- math - 为什么 3D 旋转矩阵方法通常使用单独的向量和角度而不是常规的欧拉角?
- c++ - 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- python - 枚举所有具有 5 个节点的无环有向图的 Python 代码
- kdb - KDB - 通过任务计划程序运行 .bat 时,CSV 导出不起作用
- python - 根据 self.questions 列表为答案创建 if, else 语句
- c# - API 过滤器和验证
- javascript - jQuery 显示调试器而不是输出
- hadoop - 在 HDFS 上创建 Solr 集合失败