4
私はすべての私のテストで嘲笑のオブジェクトを持つようにしたいので、私はsetUpBeforeClass()メソッドでそれを作成しようとするが、getMockBuilderは次のようにスタティックにコールする必要があるので、このメソッドは静的である:phpunitのsetUpBeforeClassメソッドで擬似オブジェクトを作成するには?
public static function setUpBeforeClass() {
self::mocked_object = self::getMockBuilder('MockedClass')
->disableOriginalConstructor()
->getMock();
}
問題はgetMockBuilderは、スタティックにコールすることができないということです。
Argument 1 passed to PHPUnit_Framework_MockObject_MockBuilder::__construct() must be an instance of PHPUnit_Framework_TestCase, null given
は嘲笑オブジェクトがsetUpBeforeClass方法で構築することや、私が公共の機能設定で(テスト前に毎回を構築しなければならないの持っているすべてのチャンスがあります()メソッド)?
なぜモックが必要ですか?あなたはちょうど通常のセットアップ方法やテストでそれを設定できませんか?モックの期待値を設定しようとしている場合は、それを一度だけ作成するのではなく、各テストごとに作成することをお勧めします。 – Gordon
mocked_objectのメソッドは常に同じ結果を返すので、それを一度だけインスタンス化するほうがいいと思ったのはなぜですか...とにかく、セットアップメソッドで作成できましたが、setUpBeforeClassで作成できるかどうかを知りたいと思いますあまりにも。 –
可能かどうかわかりませんが、分離のための各テストでクリーンな[スタブ](http://www.martinfowler.com/articles/mocksArentStubs.html#TheDifferenceBetweenMocksAndStubs)が必要なので、私は悪い習慣を主張しています。 – Gordon