This repository has been archived by the owner on Nov 11, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
v2 Sliver
yaakaito edited this page Aug 2, 2012
·
4 revisions
開発コードネームはSliverです。
いままでは
- (void)setUpClass {
[NLTHTTPStubServer globalSettings].port = 12345;
server = [[NLTHTTPStubServer stubServer] retain];
[server startServer];
}
こう書く必要があったものを廃止する。
centralServer
はNLTHTTPStubServerのクラスメソッドで起動済み、もしくはフックして起動するサーバーへの参照を提供する。
これによりstartServer
やstopServer
を扱う必要がなくなり、以下のようなコードになる。
[[[[NLTHTTPStubServer centralServer] stub] forPath:@"/api.json"] andJSONResponse:json];
いままではstub
のみだったものにexpectの概念を取り入れる。これについてはOCMockとほぼ似た形を取る。
expect
はフェイクレスポンスを登録し、それに対してアクセスがあると一回で消費される。今のstub
と同等の機能。
stub
は登録したフェイクレスポンスが消化されず、isStubsEmpty
の対象にもならない。
またisStubEmpty
についてはverify
などに名前を変更する。(しばらくはエイリアスを残す。)
stub
が非消化型になるため、URL queryなどの条件も盛り込めるようになる必要がある。
setupなどで事前に登録することで、登録が解除されるまでの間、すべてのstub
、expect
はこれを継承する。
これ自体がフェイクのレスポンスとして振る舞う訳ではない。
例えば以下のようにglobalExpect
を利用した場合
[[[NLTHTTPStubServer centralServer] globalExpect] forPath:@"/api.json"];
[[[NLTHTTPStubServer centralServer] expect] andJSONResponse:jsonA];
[[[NLTHTTPStubServer centralServer] expect] andJSONResponse:jsonB];
以下と同等と解釈される
[[[[NLTHTTPStubServer centralServer] expect] forPath:@"/api.json"] andJSONResponse:jsonA];
[[[[NLTHTTPStubServer centralServer] expect] forPath:@"/api.json"] andJSONResponse:jsonB];
フルのURLやヘッダー情報を文字列として取得する機能。
[[[[[NLTHTTPStubServer centralServer] expect] forPath:@"/api.json"] andJSONResponse:json] withVerbose];
// 実際にリクエストがきたときになんらかの表示がされる
blocksでフォーマットを変えるようなAPIも提供予定。
思いついたけど重いのでやらない予定。
画像などのcontent-typeをデフォルトで用意
基本的に保つが、実際に利用系のみのテストのみを残す形になりそう。