Я исхожу из использования таких инструментов, как SuperTest с NodeJS, и ищу соответствующие эквиваленты для поддержки тестирования с Vapor 3 и на стороне сервера Swift.
Я вижу пример использования тестируемого приложения с Vapor 3для тестирования конечных точек, например, https://github.com/raywenderlich/vapor-til/blob/master/Tests/AppTests/Application%2BTestable.swift и запись на https://medium.com/swift2go/vapor-3-series-iii-testing-b192be079c9e.
При использовании их в тестах формат обычно выглядит примерно так:
func testGettingASingleUserFromTheAPI() throws {
let user = try User.create(name: usersName, username: usersUsername, on: conn)
let receivedUser = try app.getResponse(to: "\(usersURI)\(user.id!)", decodeTo: User.Public.self)
XCTAssertEqual(receivedUser.name, usersName)
XCTAssertEqual(receivedUser.username, usersUsername)
XCTAssertEqual(receivedUser.id, user.id)
}
(из Пример кода Vapor-TIL )
Во всех этих примерах возвращаемые значения действительно настроены на возврат к чему-либо декодируемому (настройка decodeTo:
).В некоторых случаях в моем коде Vapor 3 я хочу просто проверить некоторые результаты, не закодированные в формате JSON, - просто простые строки и проверить результаты - но я не нашел методов для доступа к контенту или удобных способов проверки его с помощьюДоступен XCTAssert.
response.content
, контейнер вокруг общего ответа (типа ContentContainer ).Есть ли какие-то примеры или хорошие способы добраться до базового представления контента, чтобы проверить их напрямую?