首页 > 解决方案 > 为什么我的单元测试不能访问模型中的公共静态常量?

问题描述

我的项目结构如下图所示:

在此处输入图像描述

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)
    }
}

我收到一个编译错误“类型‘曝光’没有成员‘三角形’”。如何让测试看到静态场?

标签: swiftunit-testingtestingstaticswiftui

解决方案


您重新声明与原始类同名的测试,因此本地模块Exposure没有Triangle明显的成员,使用类似

// name test differently !!
class ExposureTest: XCTestCase {
    public func testJSONLoading() throws {
        let triangle = Exposure.Triangle
        XCTAssertEqual(triangle.count, 3)
    }
}

推荐阅读