問題タブ [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 投票する
0 に答える
560 参照

php - モックを使用して、特定の DateTime オブジェクトを期待するモックのメソッドを作成するにはどうすればよいですか

私はlaravel 4のクエリビルダを中心にいくつかの機能を構築しました.特定の部分をテストするには、次のようなことをする必要があります:

問題は、私がこれを行うたびに、嘲笑がそれを文字列に変換しようとし、エラーが発生することです:

どうすればこれを回避できますか?

(テストにはphpunitmockeryを使用しています)

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

php - Laravel 4 単体テスト: App::instance を使用してモックを注入すると、「headers already sent」エラーが発生する

私はLaravelとIoCの概念が初めてです。私は Nettuts ( http://net.tutsplus.com/tutorials/php/testing-laravel-controllers/ ) で優れたチュートリアルに従っており、コントローラーのテストに成功しました。ただし、データベースをモックしてコントローラーを分離したかったのです。モック オブジェクトを IoC に挿入しようとするとすぐに、次のエラーが発生します。

ヘッダー情報を変更できません - 既に送信されたヘッダー (/Users/STRATTON/Dev/SafeHaven/vendor/phpunit/phpunit/PHPUnit/Util/Printer.php:172 で開始された出力)

それが参照している行は、'print' コンストラクトを使用して PHPUnit のバッファを出力します。ヘッダーが設定される前に出力が送信される原因が何かありますが、問題を突き止めることはできません。

コントローラーが実際のモデルを呼び出してデータベース呼び出しを行うと、すべてのテストを正常に実行できます。同時に、オブジェクトを正常にモックし、エラーなしでモックを実行できます。しかし、App::instance() を使用してモック オブジェクトを注入しようとするとすぐに、エラーが表示されます。

PHPUnit のモックでこれをテストしたところ、同じ結果が得られました。オブジェクトを適切にモックしていますか? 名前空間に問題がありますか? コンテンツを出力している何かが欠けていますか?

コントローラ:

テストケース

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

eclipse - PHPUnitでpearを使用すると、EclipseはPHPUnitを認識しますが、Mockeryは認識しません

Pear をインストールし、Pear を使用して PHPUnit と Mockery をインストールしました。PHPUnit が elipse で正常に実行されています (pear ディレクトリはプロジェクトのインクルード パスとして構成されています)。

Mockery を使用したいのですが、Eclipse で次のエラーが表示され続けます。

PHP Fatal error: Class 'deepend\Mockery' not found

http://pkp.sfu.ca/wiki/index.php/Configure_Eclipse_for_PHPUnitのアドバイスに従いました が、ライブラリをロードする方法がわかりません。これが私のコードです:

関数 define_ci_mock の最初の行を参照してください。これは Mockery が呼び出される場所ですが、見つかりません。正しい方向に私を向けることができますか?Mockery 0.8.0 をインストールしました

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

php - Mockery を使用した PHP の単体テストとモッキング

これは、あざけることについての私の側の誤解かもしれません。存在しないクラスまたは存在するクラスをモックすることがなぜ良いことなのかについての説明をいただければ幸いです。

シナリオ例: 2 番目のクラスの出力に依存する 1 つのクラスがあり、出力形式などを変更するとします。これにより、最初のクラスでは時代遅れになっているにもかかわらず、テストが成功し続けるのではないでしょうか?

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

php - 親::関数を呼び出すクラスをテストしますか?

関数をオーバーロードするモデルがありwhereます。

私のオーバーロードされたメソッドは次のようになります。

今、phpunit と嘲笑を使用して、このクラスをテストしようとしています。オーバーロードされた where 関数をテストする必要があります。本当に気にするのは、渡される値が何であるかだけです。parent::where()

私の質問は、それは可能ですか/どうすれば親クラスをモックできるのでしょうか

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

php - あざけりで __call() をテストしますか?

私のクラスには、コメントとまったく同じように機能する非常に基本的な関数があります。このクラスに存在しない場合は、呼び出しを子モデルに転送するだけです。これは私のテストから完全に機能します。

ただし、これの単体テストも書きたいと思います。その場合、私が書いてみたテストは次のとおりです。

ただし、これは以下の素敵なエラーを吐き出しています:

1) EloquentUserProviderTest::testProviderAsksModelToFind BadMethodCallException: メソッド Webfox\Guardian\User\Guardian\Provider::find() がこのモック オブジェクトに存在しません

では、これを修正してテストに合格するにはどうすればよいでしょうか?

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

php - あざけるテスト コンストラクター呼び出し、新しいキーワード

文字列プロパティとしてクラス名があります。1 つのメソッド ( fetchObject) は、このクラスの新しいインスタンスを作成します。このメソッドを PHPUnit と Mockery でテストしたいと思います。

それがコードです

私はこのようなことを試しました

テストは機能しますが、コンストラクターの呼び出しをチェックするかどうかはわかりません。また、param が渡されたかどうかをチェックする方法もわかりません。