Upgrade to Pro — share decks privately, control downloads, hide ads and more …

XCTestでAPIのテストコードを書く

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for t.goda t.goda
April 22, 2022

 XCTestでAPIのテストコードを書く

MockingJayを利用してXCTestでのAPIテスト

Avatar for t.goda

t.goda

April 22, 2022
Tweet

More Decks by t.goda

Other Decks in Technology

Transcript

  1. 長年やれと言われていた • 某アプリケーションの単体テスト • 重要な機能の単体テストはコーディングしていた • APIに関連するテストは行っていなかった • 何故? •

    どうやるのか考えたことなかった • スタブ作んなきゃいけない • Response Handlingの処理が某アプリではめんどくさい実装になってる • Delegate使って処理を委譲してるため • >ライブラリいれて実装したりする必要がある • それらによってなんか怖い、めんどくさいという思い
  2. どう実装するのか • XcodeのプロジェクトにはデフォルトでXCTestがある • XCTest • Swift、Objective-Cで利用できるテストフレーム • Create and

    run unit tests, performance tests, and UI tests for your Xcode project. • らしい • 今回はXCTestを利用する
  3. スタブを作成する • stub(_ matcher: @escaping Matcher, delay: TimeInterval? = nil,

    _ builder: @escaping Builder) -> Stub • メソッド名からわかるように、スタブ生成メソッド • MatcherにマッチしたHTTP/HTTPS通信をハンドリングして、builderを返却する •すごい!!!!!こいつがほしかっ た!!!
  4. 罠その2 • このままだと非同期処理(通信処理)が終わる前にテストがおわるので ウェイトをかける • wait(for expectations: [XCTestExpectation], timeout seconds:

    TimeInterval) • timeoutまでウェイトをかけるメソッド • expectationsは、このパラメーターがfulfillされるのを待つ