2

ZfcUser + BjyAuthorize を使用して、Zend Framework 2 プロジェクトの単体テストに取り組み始めています。

私は単体テストの専門家ではないので、ここでZfcUser をモックする方法を見つけました。

ここで、BjyAuthorize もモックする必要があります。誰かが以前にそれを行うことができましたか?

4

1 に答える 1

4

確かに、これに応答するのは遅いです。

モックオブジェクトを使用して解決策にたどり着きました(モックを使用するのは好きではありません...)、BjyAuthorizeを適切に初期化する方法が見つかりませんでした...

私のテストコントローラーは AbstractHttpControllerTestCase から拡張されています

testController::setUp() で、そのようなモック オブジェクトを作成しました。

    // Creating mock
    $mockBjy = $this->getMock("BjyAuthorize\Service\Authorize", array("isAllowed"), array($this->getApplicationConfig(), $this->getApplication()->getServiceManager()));

    // Bypass auth, force true
    $mockBjy->expects($this->any())
            ->method('isAllowed')
            ->will($this->returnValue(true)); 

    // Overriding BjyAuthorize\Service\Authorize service
    $this->getApplication()
         ->getServiceManager()
         ->setAllowOverride(true)
         ->setService('BjyAuthorize\Service\Authorize', $mockBjy);

私はこの解決策が好きではありません。本当に醜いと思いますが、他の方法を見つけることができません。

于 2013-10-26T20:54:18.803 に答える