Методы модульного тестирования, содержащие AWSAPIGatewayResponse в swift - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть следующий метод, и я пытаюсь выполнить модульное тестирование этого в iOS / Swift

func apiResponseResults(response: AWSAPIGatewayResponse, sessionObject: Session) {
    if response.statusCode == 200 {
        // code
    } else {
        // code
    }
}

Этот метод вызывается из моего метода api invoke, когда получен ответ.Я хочу проверить это, создав поддельный объект AWSAPIGatewayResponse.Я не могу создать AWSAPIGatewayResponse объект.Есть ли способ инициализировать этот объект в моем классе модульного тестирования.Я просто хочу создать AWSAPIGatewayResponse объект с statusCode как 200 и 300.Любая помощь приветствуется.

1 Ответ

0 голосов
/ 19 апреля 2019

Привет Прадип , добро пожаловать в StackOverflow. ?

Вы можете определить протокол с подмножеством интересующих вас функций из AWSAPIGatewayResponse, заставить AWSAPIGatewayResponse соответствовать ему и заставить apiResponseResults(response:, session:) ожидать значение этого типа.

protocol Response {
  var statusCode: Int { get }
}

extension AWSAPIGatewayResponse: Response { }

func apiResponseResults(response: Response, sessionObject: Session) { ... }

В ваших тестах вы можете определить двойной тест, соответствующий Response, и использовать его в качестве входного параметра для вашего метода.

struct TestResponse: Response {
  let statusCode: Int
}

// Use it like this
let response = TestResponse(statusCode: 200)

Надеюсь, это поможет.

...