Mockery1.0 デメテルチェーンとfluentインターフェイスのモック

デメテルチェーンとfluentインターフェイスのモック

両語ともに以下のような形態の、よく使われるようになってきたメソッド起動の実働コードを意味します。

$object->foo()->bar()->zebra()->alpha()->selfDestruct();

呼び出し側のクラスが知っているローカルオブジェクトへ、それぞれのリンクが戻っていると仮定すれば、メソッド呼び出しの長いチェーンは悪いとは言い切れません。面白い一例は、(最初のshouldReceive()メソッドに続く)Mockeryの長いチェーンは、すべて同じ\Mockery\Expectationインスタンスを呼び出しています。しかしながら、時々これが当てはまらずに、チェーンがオブジェクトの境界をまたぐことがあります。

どちらの場合でも、このようなチェーンをモックするのはひどい仕事になり得ます。簡単にするために、Mockeryはデメテルチェーンのモックをサポートしています。簡潔に言えば、チェーン全体のショートカット記法と、最後の呼び出しの戻り値の定義です。例として、selfDestruct()メソッドが、文字列の"Ten!"を(CaptainsConsoleのインスタンスの)オブジェクトへ返すと仮定してみましょう。これをモックする例をご覧ください。

$mock = \Mockery::mock('CaptainsConsole');
$mock->shouldReceive('foo->bar->zebra->alpha->selfDestruct')->andReturn('Ten!');

上記のエクスペクションは、前記のチェーンの形式に従っています。例外はチェーンで呼び出される全てのメソッド名が、->で分割されたシンプルな文字列になっていることです。実際の実装がチェーン間でどんなオブジェクトを使用しているかに関係なく、Mockeryは自動的に、チェーン呼び出しの期待と、最終的な返り値を設定します。

この過程で、チェーンの全ての要素の引数は(最後の呼び出しを除き)、無視されます。

ドキュメント章別ページ

概論

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

バージョン

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる