Почему мой модульный тест не может получить доступ к константе publi c stati c в моей модели? - PullRequest
1 голос
/ 14 июля 2020

Моя структура проекта показана ниже:

введите описание изображения здесь

Класс 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 "имеет нет члена "Треугольник" ". Как сделать так, чтобы в тесте отображалось поле stati c?

1 Ответ

1 голос
/ 14 июля 2020

Вы повторно объявляете тест с тем же именем, что и исходный класс, поэтому локальный модуль Exposure не имеет очевидного члена Triangle, используйте что-то вроде

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