0

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のアドバイスに従いました が、ライブラリをロードする方法がわかりません。これが私のコードです:

<?php
use \Mockery as m;

define('BASEPATH', (dirname(__FILE__) . '/../../../../sys'));

require_once (dirname(__FILE__) . '/../models/products_model_composed.php');

class ProductsModelTest extends PHPUnit_Framework_TestCase { 
    private $products;
    private $mock_ci_model;


public function setUp(){
    $this->products = new products_model_composed();
    $this->define_ci_mock();
    $this->products->__set('ci_model', $this->mock_ci_model);
}

private function define_ci_mock(){
    $ci = m::mock('CI_Model');
    $ci->shouldReceive('ee')->once()->andReturn($this);
}

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

4

1 に答える 1

0

あはは!その日をあきらめていたとき、私は答えを見つけました!

ブートストラップ ファイルは、次のパラメーターを使用して最初に実行する必要があります。

require_once 'Mockery/Loader.php';
require_once 'Hamcrest/Hamcrest.php';
$loader = new \Mockery\Loader;
$loader->register();

https://github.com/padraic/mockery/blob/master/README.markdownを参照してください

Mockery にはオートローダが同梱されているため、require_once() 呼び出しでテストを散らかす必要はありません。これを使用するには、Mockery が include_path にあることを確認し、テスト スイートの Bootstrap.php または TestHelper.php ファイルに以下を追加します。

于 2013-05-29T14:43:52.157 に答える