0

私のコンストラクターは、データベースからロードされたデータでプロパティを設定します。それが本当にdbからデータをロードするかどうかをテストするにはどうすればよいですか?%100のテストカバレッジ率が必要なので、コードのすべての部分をテストする必要があります。

<?php
class PreferencesAdapter {

    private $_preferences = NULL;

    public function __construct() {         
                ...
        $this->load();
                ...
    }

    public function load() {
        ...
        $this->_preferences= DataFromDb();
    }
}
?>
4

2 に答える 2

1

load()テスト メソッドをモックして、オブジェクトの作成時に 1 回呼び出されることを確認します。

于 2013-01-15T10:28:15.280 に答える
0

(迅速なテストのために、これはあなたができる長文のアプローチです。)

または、関連するクエリをクラス PreferencesAdapterQueryCollection のパブリック メソッドとして配置し、オプションのコンストラクター パラメーターとして PreferencesAdapter に挿入します。(パラメーターが送信されなかった場合は、そこで PreferencesAdapterQueryCollection をインスタンス化するだけです。)

PreferencesAdapterTest で、モック化された PreferencesAdapterQueryCollection を送信し、パブリックで単純なクエリ メソッドの期待値と戻り値を指定します。

私はこれでモッカリーが好きです。Mockeryの質問を参照してください- call_user_func_array() は、パラメーター 1 が有効なコールバックであることを期待しています。

于 2013-01-15T16:00:20.563 に答える