問題タブ [mockery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4785 参照

php - Laravel - 入力が単体テストを通過しない

単体テストを実行すると、次のエラーが表示されます。Input::get をコンストラクターに渡すのは好きではないようですが、ブラウザー内でスクリプトを実行すると、アクションは正常に機能するため、コントローラー コードではないことがわかります。「task_update」コードのいずれかを取り出すと、入力があっても検索だけでテストに合格します。そのため、1 つのメソッドの入力を受け入れる理由がわかりません。

私のコントローラーは:

そしてテストは - task_updates 配列の入力を設定していますが、ピックアップされていません:

0 投票する
3 に答える
6098 参照

php - Mockery で連鎖メソッド呼び出しをテストする

コントローラー内の Eloquent モデルへの連鎖呼び出しを適切にモックしようとしています。私のコントローラーでは、依存性注入を使用してモデルにアクセスしているため、簡単にモックできますが、連鎖呼び出しをテストして正しく機能させる方法がわかりません。これはすべて、PHPUnit と Mockery を使用した Laravel 4.1 にあります。

コントローラ:


コントローラーのテスト:


$this->action()テストで呼び出しの前にこのコードを配置することで、これを達成しようとしています。

ただし、これによりエラーが発生しますFatal error: Call to a member function with() on a non-object in /app/controllers/TextbooksController.php on line 28

また、それがうまくいくことを期待して、チェーンされた代替手段も試しました。

このチェーンされたメソッド呼び出しを Mockery でテストするために取るべき最善のアプローチは何ですか。

0 投票する
1 に答える
2246 参照

unit-testing - Laravel - リポジトリのテスト

コンストラクターを介して注入された Eloquent モデルを持つリポジトリーをテストする必要があります。

私の問題は、$this->model->value_products(または属性のいずれか)を呼び出すときです。setAttributeEloquent モデルは、モックされたモデルには存在しないメソッドを呼び出そうとします。このメソッドをモックすると、属性を正​​しく設定できず、テスト アサーションが失敗します。

これが私のテストです:

これについて何か考えはありますか?

0 投票する
1 に答える
1978 参照

php - 嘲笑を使用して依存関係のあるクラスを単体テストする

私はテストが初めてで、NewsCreator create メソッドの最初の if ステートメントをカバーする単体テストを作成しようとしています。

この質問には 2 つの部分があります。

最初: モックされたバリデータとリポジトリを処理するには、NewsCreator をどのようにインスタンス化する必要がありますか?

2 番目: このパスをテストする正しい方法は何でしょうか?

テストが必要なクラスを呼び出すコントローラー メソッドは次のとおりです。

テストしたいクラス、NewsCreator は次のとおりです。

これは私が書こうとしたテストですが、例外で失敗します:

2) WHS\Portal\Tests\News\NewsCreatorTest::test_failed_validation Mockery\Exception\InvalidCountException: Method fails("foo") from Mockery_1_WHS_Portal_News_NewsValidator should be called exactly 1 times but called 0 times.

更新されたテスト:

スタブ クラス:

助けてください。

ありがとう。

0 投票する
2 に答える
479 参照

php - Mockery をデメテル チェーンで動作させる方法

いくつかのミドルウェアを含むスリム アプリケーションがあります。

ルートの認証を実行し、次のようにルートを取得します。

私は現在それをテストしており、Mockery を使用して連鎖呼び出しの結果をモックしようとしているので、ルートを効果的に指定できます。

これはうまくいきません。: を呼び出そうとしrequire('lib/demeter/router.php')ますが、これが存在しないため失敗します。

私も試しました:

これも機能せず、次のように失敗します。

私は何が欠けていますか?