【问题标题】:Using pear with PHPUnit, eclipse sees PHPUnit but not Mockery使用 pear 和 PHPUnit,eclipse 看到 PHPUnit 而不是 Mockery
【发布时间】:2013-05-24 19:42:19
【问题描述】:

我已经安装了 Pear 并使用 Pear 来安装 PHPUnit 和 Mockery。 我已经在elipse中成功运行了PHPUnit(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

【问题讨论】:

    标签: eclipse phpunit pear mockery


    【解决方案1】:

    啊哈!就在我放弃这一天的时候,我找到了答案!

    需要首先使用以下参数运行引导文件:

    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-03-24
      • 1970-01-01
      • 2011-08-13
      • 2014-08-16
      • 2011-09-10
      • 2014-07-18
      • 1970-01-01
      • 2014-03-21
      • 2016-10-01
      相关资源
      最近更新 更多