TDD と phpspec を使用して API クラスのラッパーを作成しようとしています。
Client
REST API からのデータの要求/取得を処理するクラスを作成しました。このクラスは、いくつかのEntity
クラスの 1 つにマップされるため、ORM のように動作します。
TDDでアプリケーションをテストして拡張するようになったので、少し行き詰まっています。これはClient
エンティティ クラスの依存関係であるため (独自の子オブジェクトを要求できるようにするため)、これをモックするのに苦労しています。
たとえば、エンティティの 1 つ は次のComic.php
ようになります。
class Comic {
protected $client;
public $id;
public function __construct(Client $client)
{
$this->client = $client;
}
public function getCharacters()
{
// just an example, this would return an array of Character objects
return $this->client->request("comic/{$this->id}/characters");
}
}
簡潔にするために、 の単純化されたダウン バージョンはClient.php
次のようになります。
class Client {
public function __construct($publicKey, $privateKey)
{
// make token from $publicKey, $privateKey
}
public function request($endpoint)
{
// use token for cURL request to endpoint and return data
}
}
ComicSpec.php
では、例として、it_gets_all_characters()
ルックのテストはどのように行われるのでしょうか?
これが理にかなっており、必要に応じてさらに情報を提供できることを願っています。
ご覧いただきありがとうございます。