ページ内ナビ
概要
OHHTTPStubsはApple URL Loading System上のnetwork requestをstubするtesting libraryです。host/path等のmatcherでrequestを捕捉し、fixture、status code、header、response timeを返してunit testやbad network conditionを再現できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
request matcherとstub responseでnetwork fixtureを差し込む
isHost等のmatcherで対象requestを選び、fixture fileやcustom responseを返せます。NSURLSessionやそれを利用するAlamofire等のnetworking frameworkにも適用できます。
出典:[2]
delay・status・headerを変えてnetwork conditionをtestする
fake dataだけでなくresponse code、header、response timeを制御し、slow networkやerror pathをreal backendなしで再現できます。test後はstubをremoveして次testへ状態を残さない運用が推奨されています。
出典:[2]
向いている用途
API clientや画面のnetwork success/error/loading状態をdeterministicにtestしたい場合に向く
fixture based unit testやUI testでbackend availabilityに依存せず、同じrequestに対して再現可能なresponseを返したいiOS projectに適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]AliSoftware/OHHTTPStubs — GitHub repository(2026-10-06)
- [2]OHHTTPStubs 9.1.0 — README(2026-10-06)
- [3]OHHTTPStubs 9.1.0 — Package.swift(2026-10-06)
- [4]OHHTTPStubs 9.1.0 release(2026-10-06)
- [5]OHHTTPStubs MIT license(2026-10-06)
編集部からの補足
API clientやloading/error stateをbackend非依存でdeterministicにtestしたいiOS projectに向きます。latest releaseは2020年のためtest/DEBUG用途に限定し、現行Swift/Xcode互換をCIで確認してください。
3ステップで試す
- 1
OHHTTPStubs 9.1.0をtest dependencyへ追加する
test targetからOHHTTPStubsSwift productを利用します。latest releaseは古いためcurrent toolchainでbuild確認してください。
.package(url: "https://github.com/AliSoftware/OHHTTPStubs.git", exact: "9.1.0") - 2
hostに一致するrequestをstubする
URL Loading System経由のrequestをhost matcherで捕捉し、local JSON responseを返します。
import OHHTTPStubs import OHHTTPStubsSwift stub(condition: isHost("api.example.com")) { _ in HTTPStubsResponse(jsonObject: ["ok": true], statusCode: 200, headers: nil) } - 3
test後にstubをremoveする
stub stateを次のtestへ残さないようtearDown等で全stubを削除します。
HTTPStubs.removeAllStubs()
成長
成長の推移 · 直近30日
5,066 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 12
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- ios
- stubbing
- network
- swift
- objective-c
- stub
- ohhttpstubs
- mock
- mock-server
- mocking
- Stars
- 5,066
- Forks
- 598
- Watchers
- 107
- Open Issues
- 47
- Contributors
- 60
- 所有者種別
- User
- 主要言語
- Objective-C
- ライセンス
- MIT
- リポジトリ最終更新
- 2024/05/09
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- REST Assured7,141 Stars
共通タグ 3件 · 共通カテゴリ 1件
JavaのDSLでREST APIへrequestを送り、status・header・JSON/XML bodyを検証する
Java - http4k2,791 Stars
共通タグ 3件 · 共通カテゴリ 1件
HTTP serviceをKotlin functionとしてserve・consume・testする
Kotlin - Jest45,500 Stars
共通タグ 2件 · 共通カテゴリ 2件
assertion・mock・watch・snapshot・worker isolationを一つのCLIへまとめるJavaScript testing framework
TypeScript - Testify26,222 Stars
共通タグ 2件 · 共通カテゴリ 2件
assert・require・mock・suiteで標準testingを補強するGo testing toolkit
Go - Appium22,046 Stars
共通タグ 2件 · 共通カテゴリ 2件
WebDriver互換APIでAndroid・iOS・desktop appのE2E testを自動化する
TypeScript - Catch221,508 Stars
共通タグ 2件 · 共通カテゴリ 2件
C++の単体テスト・BDD・簡易ベンチマークを同じテスト実行環境で記述し、CMake/CTestへ組み込む
C++
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。