#ios #swift #unit-testing #localytics
#iOS #swift #модульное тестирование #localytics
Вопрос:
Я использую Localytics в своем приложении, которое в основном представляет собой просто API, который можно использовать для отправки аналитических данных на сервер.
https://docs.localytics.com/dev/ios.html#install-sdk-ios
Я работаю в проекте, где мы должны модульно тестировать каждый отдельный файл, чтобы убедиться, что покрытие кода составляет не менее 90%.
Поскольку localytics — это внешняя библиотека, у меня есть оболочка вокруг нее для использования API.
Рассмотрим простой метод localytics :
func tagScreen(screenName: String) {
Localytics.tagScreen(screenName)
}
Как я могу модульно протестировать эту оболочку?
Есть ли какие-либо предложения?
Как мы можем написать Mocks для описанного выше метода?
Ответ №1:
Если вы хотите протестировать оболочку: as Localytics
имеет статические функции для взаимодействия, я бы выбрал что-то вроде:
class LocalyticsWrapper {
private let tagFunc: (String) -> Void
init(tagFunc: @escaping (String) -> Void = Localytics.tagScreen) {
self.tagFunc = tagFunc
}
func tagScreen(screenName: String) {
// maybe some pre-formatting done here or something
tagFunc(screenName)
}
}
Теперь вы можете внедрить макет функции и протестировать оболочку