Кто-то попытался включить макет данных с новыми тестами UC Xcode 7?Как оценивать данные в UITest на Xcode 7?
- Вы использовали конкретную структуру?
- Как вы управляли целями?
Кто-то попытался включить макет данных с новыми тестами UC Xcode 7?Как оценивать данные в UITest на Xcode 7?
Я думаю, что есть много способов приблизиться к этому - трудность заключается в том, что Apple намеренно разработала UITests для запуска полностью отдельно от тестируемого приложения. Тем не менее, есть несколько крючков, которые вы можете использовать для координации логики в приложении с логикой в своих тестах, чтобы подавать макет данных или каким-либо образом изменять поведение вашего приложения. Эти два, которые я нашел наиболее полезными, - launchEnvironment
и launchArguments
.
в тесте - XCUIApplication().launchArguments
соответствует NSProcessInfo.processInfo().arguments
в коде приложения
также: XCUIApplication().launchEnvironment
->NSProcessInfo.processInfo().environment
launchEnvironment является прямой словарь, тогда как запустить аргументы является массивом. В тесте можно кормить любые значения, вы, как в любой из этих параметров, прежде чем запустить приложение:
let app = XCUIApplication()
app.launchEnvironment["-FakedFeedResponse"] = "success.json"
app.launch()
Затем в логике приложения вы можете переключиться на эти ценности, как вам нравится. Что-то вроде:
func fetchFeed() -> JSON {
if let fakedJSONFilename = NSProcessInfo.processInfo().environment["-FakedFeedResponse"] {
let fakePayload = fakeDataFileNamed(fakedJSONFilename)
return fakePayload
} else {
//Make network call and return a real JSON payload
}
}
Используя эту модель ваши подделыванным/фиктивные данные должны быть файлы включены в состав целевого приложения.
Спасибо! Я просто провел несколько часов, пытаясь передать аргументы в приложение, и это сделало трюк. – rob