Я добавляю юнит-тесты для своего класса в Dynami c Cocoa Touch Framework.
class DetailControllerTests: QuickSpec {
override func spec() {
describe("View must load") {
context("if I init my view controller") {
it("should load") {
let viewModel = MyViewModel()
let viewController = DetailController(viewModel: viewModel)
viewController.beginAppearanceTransition(true, animated: true)
viewController.endAppearanceTransition()
expect(viewController.isViewLoaded).to(beTrue())
}
}
}
}
}
Пока это такой базовый c тест. В другом dynamic cocoa-touch framework
есть класс ImageHelper
с именем Shared
. Так что мой viewModel использует некоторую переменную ImageHelper, и когда я хочу использовать ее, возникает ошибка, как описано ниже.
Неустранимая ошибка: неожиданно обнаружен ноль при развертывании Необязательное значение: файл {ссылочный файл ImageHelper находится в Shared Framework }, строка 76
Итак, аварийная функция здесь;
private static func getImage(for name: String) -> UIImage {
return UIImage(named: name, in: Bundle.main, compatibleWith: nil)!
}
Я получил пользовательскую ошибку UIFont
, подобную этой, и возникла проблема с незарегистрированным, потому что я предполагаю когда я запускаю свои тесты, UIFonts
& UIImages
не регистрируется, поэтому всегда есть cra * sh. Я решил UIFont
проблему с помощью вспомогательной registerFont
функции для всех UIFont
.
Как мне решить мою проблему? Есть ли какая-либо функция регистрации для UIImage
?
Есть ли способ зарегистрировать UIImages
до того, как тест не начался?
Заранее спасибо!