KIF работает как магия, что-то озадачило меня совсем недавно. Именно так работают KIF и XCTest.Как установить флаги, которые мое приложение увидит, когда оно будет запущено в XCTest?
В WWDC 2014 & 2013: тестовый код вводится в хост-приложение как вид плагина, поэтому какая информация может подслушиваться из основного приложения в виде плагина? Какая связь между Host Application & Плагин ??
Используя KIF, мы можем определить URL-адрес Уведомления &, но как это работает? Моя первая мысль заключается в том, что весь контекст в хост-приложении разделяется с плагином. Но почему в тесте мы не можем изменять переменные в главном приложении?
Например:
у нас есть две цели:
Магия проекта
- MagicApp
- MagicUITest < - KIFTest мишень
Пусть у меня есть файл MagicClass:
class MagicClass {
static var a = 1
}
Возможно ли это, если я хочу изменить эту переменную в MagicUITest?
Проблема, с которой я столкнулся сейчас, заключается в том, как я могу вставлять другой UIViewController в RootViewController, чтобы я мог запускать KIF-тест из каждого отдельного ViewController и не нуждаюсь в том, чтобы все время проходить процесс входа в систему. как:
в MagicApp:
class AppDelegate : .. , .. {
func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
if MagicClass.a == 1 {
window.rootViewController = AViewController()
} else {
window.rootViewController = BViewController()
}
}
}
в нАлАдкА KIFTest (в):
setUp() {
Magic.a = 2
}
Но не работает ..
Одно Magic.a = 2 не изменит Magic.a в MagicApp, второй является применение (.., .., ..) функция завершится перед установкой() называется ..
Любая идея?
Спасибо! Я это попробую. Случай, который мы хотим, чтобы приложение выглядело иначе, в основном связано с ложными сетевыми ответами. Например, зарегистрировать настроенный NSURLProtocol для протоколов NSURLSessionArray. –