У меня есть тестовый случай аутентификации пользователя, который регистрирует пользователя, и пользователь сохраняется в файле json. Весь проект посвящен тестированию, и я не могу понять, как это сделать go.
Существует файл NetworkService.swift, который обрабатывает все функции тестирования, но в регистр вызовов не был передан URL-адрес.
NetworkService.swift
class NetworkService: NSObject {
private let session: URLSession
init(session: URLSession) {
self.session = session
}
//token for requests
var authToken: String?
//MARK: Singleton
static var sharedService: NetworkService = NetworkService(session: URLSessionMock())
//MARK: Requests
func registerUserWith(login: String?, password: String?, success: @escaping (Data)->(), failure: @escaping (Error?) -> ()) {
//register user method, use self.session
}
func getAllEvents(success: @escaping (Data)->(), failure: @escaping (Error?) -> ()) {
//get all events method, use self.session
}
func subscribeOnEvent(eventUUID: Int, success: @escaping (Data)->(), failure: @escaping (Error?) -> ()) {
//subscribe method, use self.session
}
func unsubscribeFromEvent(eventUUID: Int, success: @escaping (Data)->(), failure: @escaping (Error?) -> ()) {
//unsubscribe method, use self.session
}
}
Это тестовый пример
func testUserRegistrationMethod() {
let expectation: XCTestExpectation = self.expectation(description: "user registration")
let login: String = "testUser"
let password: String = "pass"
NetworkService.sharedService.registerUserWith(login: login, password: password, success: { (responseData) in
expectation.fulfill()
XCTAssertNotNil(responseData, "Data is nil")
do {
let json = try JSONSerialization.jsonObject(with: responseData, options:[]) as! [String : Any?]
let authToken: String = json["authToken"] as! String
XCTAssertNotNil(authToken, "AuthToken is nil")
} catch let error {
print(error)
}
}) { (error) in
expectation.fulfill()
XCTFail((error?.localizedDescription)!)
}
waitForExpectations(timeout: 4) { (error) in
if error != nil {
print(error!)
}
}
}
Вы работаете над приложением для конференций. Пользователь такого приложения должен иметь возможность зарегистрироваться в этом приложении и взаимодействовать с ним при просмотре доступных событий, иметь возможность подписываться и отписываться от текущей конференции.
Реализация сетевой службы, которая используется для взаимодействия с сервер.
Постановка проблемы
Необходимо реализовать следующие методы:
- Функция регистрирует пользователей с помощью логина и пароля. , В случае успешной регистрации, он возвращает токен в блоке успеха. В случае ошибки вызывается блок сбоя.
func registerUserWith(login: String?, password: String?, success: @escaping (Data)->(), failure: @escaping (Error?) -> ())
У меня нет URL-адреса и я не знаю, является ли это полным вопросом