問題タブ [phpunit]

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 投票する
11 に答える
20947 参照

php - ヘッダーを送信する必要があるアイテムを使用した単体テスト

私は現在、PHPUnit を使用して、自分が書いているものと一緒にテストを開発しようとしていますが、現在、Session Manager の作成に取り組んでおり、そうするのに問題があります...

セッション処理クラスのコンストラクタは次のとおりです。

ただし、PHPUnit はテストを開始する前にテキストを送信するため、HTTP「ヘッダー」が送信されているため、このオブジェクトのテストは失敗したテストを返します...

0 投票する
6 に答える
56993 参照

unit-testing - 抽象クラスのテスト

PHPUnit で抽象クラスの具象メソッドをテストするにはどうすればよいですか?

テストの一環として、ある種のオブジェクトを作成する必要があると思います。ただし、これに関するベスト プラクティスや、PHPUnit でこれが許可されているかどうかはわかりません。

0 投票する
10 に答える
148184 参照

php - PHPUnit で保護されたメソッドをテストするためのベスト プラクティス

Do you test private methodに関する議論は参考になりました。

一部のクラスでは、メソッドを保護したいが、それらをテストすることにしました。これらのメソッドの一部は、静的で短いものです。パブリック メソッドのほとんどはそれらを使用するため、後でテストを安全に削除できる可能性があります。しかし、TDD アプローチから始めてデバッグを避けるために、私は本当にそれらをテストしたいと思っています。

私は次のことを考えました:

  • 回答でアドバイスされているメソッドオブジェクトは、これにはやり過ぎのようです。
  • パブリック メソッドから始めて、より高いレベルのテストによってコード カバレッジが提供されたら、それらを保護してテストを削除します。
  • 保護されたメソッドを公開するテスト可能なインターフェースを持つクラスを継承する

ベストプラクティスはどれですか? 他に何かありますか?

JUnit は自動的に保護されたメソッドを public に変更するようですが、私はそれを詳しく見ていませんでした。PHP では、これをリフレクション経由で行うことはできません。

0 投票する
11 に答える
93752 参照

php - パラメータに基づいて異なる値を返すように PHPUnit MockObjects を取得するにはどうすればよいですか?

'return value'引数に関係なく返す PHPUnit モック オブジェクトがあります。

私ができるようにしたいのは、モック メソッドに渡された引数に基づいて異なる値を返すことです。私は次のようなことを試しました:

しかし、これにより、モックが引数 で呼び出されないと PHPUnit が文句を言うので、 の定義が最初の の定義を上書きする'two'と仮定します。methodToMock('two')

だから私の質問は: PHPUnit モック オブジェクトを取得して、その引数に基づいて異なる値を返す方法はありますか? もしそうなら、どのように?

0 投票する
7 に答える
66024 参照

php - phpunitはモックのコンストラクター引数を避けます

phpunitがモックオブジェクトのコンストラクターを呼び出さなくて済むようにする方法は何ですか?それ以外の場合は、コンストラクター引数としてモックオブジェクト、そのための別のオブジェクトなどが必要になります。APIは次のようになります。

動作しません。$callOriginalConstructorfalseに設定されていても、コンストラクター引数について不平を言います。

コンストラクターにはオブジェクトが1つしかなく、それは依存性注入です。ですから、そこにはデザイン上の問題はないと思います。

0 投票する
5 に答える
9977 参照

php - PHP のどの単体テスト フレームワーク: simpletest、phpunit、または?

私はそれが私が知っているので、 simpletestの大ファンです。モックと Web テストの優れたサポートを備えています。

しかし、私は常に停滞することを恐れているので、切り替えるべき説得力のある議論をいただければ幸いです。

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

php - PHPUnitのファイル命名規則

いくつかの既存のコードでphpunitを試し始めたところです。私たちが使用する命名規則では、MyClassクラスはMyClass.class.phpにある必要があります。PHPUnitでは、ファイルの名前をMyClass.phpにする必要があるようです。

これを回避する方法はありますか?

スケルトンテストクラスを生成しようとしているときに気づきました。

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

php - PHPUnit を使用した Doctrine オブジェクトの単体テスト

私は Doctrine オブジェクトを PHPUnit でテストしようと試み始めており、毎回モデル オブジェクトから DB を再ロードしたいと考えています。

私の最初の試みは次のようになります。

問題は、2 番目のテストで setUp() が再度呼び出されると、createTablesFromModels() が失敗し、テーブルが存在しないためにエラーが発生することです。

他の誰かが PHPUnit やその他の単体テストの目的で Doctrine 接続を再初期化した例を教えていただければ幸いです。

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

php - PHPUnit モック オブジェクトの 2 番目のパラメーターをテストする方法

これは私が持っているものです:

ただし、メソッドは 2 つのパラメーターを取る必要があります。最初のパラメーターが ($arg1 として) 正しく渡されていることのみをテストしています。

2 番目のパラメーターをテストするにはどうすればよいですか?

0 投票する
6 に答える
7672 参照

php - 静的メソッド呼び出しをエミュレートするためのPHPUnitのモックオブジェクト?

データベース内のデータアクセスを管理するクラスをテストしようとしています(基本的にはCRUDです)。私たちが使用しているDBライブラリには、静的呼び出しによって最初にテーブルオブジェクトを取得するAPIがあります。

...あなたはアイデアを得る。

このメソッドをテストしようとしていますが、DataObjectのものをモックして、(a)テストに実際のdb接続を必要とせず、(b)テストにDB_DataObjectlibを含める必要さえありません。 。

ただし、PHPUnitでは、静的呼び出しを適切に設定するために$ this-> getMock()を取得できないようです。私は持っています...

...しかし、テストはまだ未知の方法「工場」を示しています。以前はDB_DataObjectが見つからなかったため、オブジェクトを作成していることはわかっています。今ではできます。しかし、方法はありませんか?

私が本当にやりたいのは、2つのモックオブジェクトを用意することです。1つはテーブルオブジェクトにも返されます。したがって、ファクトリが静的呼び出しであることを指定する必要があるだけでなく、すでに設定した他の指定されたモックオブジェクトを返すことも指定する必要があります。

しばらく前にSimpleTestでこれを実行し(コードが見つかりません)、正常に機能したことを警告として言及する必要があります。

何が得られますか?

[アップデート]

私はそれがexpects()と関係があることを理解し始めています