More Related Content
Similar to よく使うテストヘルパーの紹介 #ios_test_night (20)
More from Kenji Tanaka (20)
よく使うテストヘルパーの紹介 #ios_test_night
- 4. Json 🤔
let hogeURL = Bundle(for: type(of: self))
.url(forResource: "Hoge", withExtension: "json")!
let data = try! Data(contentsOf: hogeURL)
let decoder = JSONDecoder()
let hoge = try! decoder.decode(Hoge.self, from: data)
hoge Stub hoge
- 6. Json -
class TestDataHelper {
static func testData<T: Decodable>(forResource resource: String, ofType type: String) -> T {
let url = Bundle(for: TestDataHelper.self).url(forResource: resource, withExtension: type)!
let data = try! Data(contentsOf: url)
let decoder = JSONDecoder()
return try! decoder.decode(T.self, from: data)
}
}
- 7. Response HTTP Stub🤔
var responses = [authError, successWithAccessToken, success]
stub(condition: isHost("example.com")) { request in
return responses.removeFirst()
}
// ......
// ...
OHHTTPStubs.removeAllStubs()
responses test function …
- 9. Response HTTP Stub -
struct HTTPStub {
static func activate(condition: @escaping OHHTTPStubsTestBlock,
responses: [OHHTTPStubsResponse]) {
var responsesArray = responses
stub(condition: condition) { request in
let response = responsesArray.removeFirst()
return response
}
}
static func deactivate() {
OHHTTPStubs.removeAllStubs()
}
}