как протестировать базовую модель данных, используемую в фреймворке в Swift - PullRequest
6 голосов
/ 03 октября 2019

Я пишу быстрый фреймворк и использую шаблон из команды 'pod lib create'. в своих модулях разработки я создал файл модели основных данных и использую основные данные в своей среде. теперь я хочу написать модульные тесты для него. это мой код класса модульного теста:

import XCTest
import CoreData
@testable import MyFramework

class MyClassTests: XCTestCase {

    var testPersistentContainer: NSPersistentContainer?

    override func setUp() {
        let persistentStoreDescription = NSPersistentStoreDescription()
        persistentStoreDescription.type = NSInMemoryStoreType

        let container = NSPersistentContainer(name: "MyCoreDataModelFileName")
        container.persistentStoreDescriptions = [persistentStoreDescription]
        container.loadPersistentStores { (storeDescription, error) in
            if let error = error {
                fatalError(error.localizedDescription)
            }
        }

        self.testPersistentContainer = container
    }

    override func tearDown() {

    }

    func testSomething() {
        // the persistent container I'm trying to use is nil
        XCTAssertNotNil(self.testPersistentContainer)
    }
}

Я знаю, в чем проблема, проблема в том, что цель теста не может найти файл моей основной модели данных, и когда я создаю файл с правильнымимя в моем примере приложения цели, вышеупомянутый тест проходит. но

Вопрос

Как правильно проверить базовую модель данных каркаса?

1 Ответ

0 голосов
/ 04 октября 2019

Вы пытались загрузить модель базовых данных из комплекта фреймворка?

let managedObjectModel = NSManagedObjectModel.mergedModel(from: nil)

Тогда вам не нужно будет добавлять ее к цели тестирования

...