在Codeception TestCase的_before函数中找不到的类

时间:2015-02-25 16:48:06

标签: yii2 codeception

我正在用Yii2和Codeception编写一些测试,在_before()函数中使用我自己的类时,我遇到了一个奇怪的错误:

FATAL ERROR. TESTS NOT FINISHED.
Class 'app\lib\FTPImage' not found in /var/www/proyect/tests/codeception/unit/lib/FTPImageTest.php:13

这很奇怪,因为如果我在测试方法中使用它,它就像魅力:/

以下是测试代码:

<?php
namespace tests\codeception\unit\lib;

use Yii;
use yii\codeception\TestCase;
use app\lib\FTPImage;

class FTPImageTest extends TestCase{

    public $ftp;

    public function _before(){
        $this->ftp = new FTPImage();
    }

    public function _after(){
    }

    public function testGetImagesNoImages(){
        $ftp = new FTPImage();

        $images = $ftp->getImages("123", "Foobar");

        $this->assertEmpty($images);
    }
}

这是FTPImage类的代码:

<?php
namespace app\lib;

use Yii;
use app\lib\FTPClient;
use \yii\base\Exception;
use \yii\base\ErrorException;
use \yii\imagine\Image;

class FTPImage{     

    public function __construct() {
    }

    public function getImages($reference, $supplier_name){
        ...
    }

我希望有人可以帮助我 提前谢谢!

1 个答案:

答案 0 :(得分:2)

最后我找到了解决方案。我已将_before_after个功能更改为setUptearDown。这样,我可以使用我的FTPImage类。

这是我做的:

class FTPImageTest extends TestCase{

    public $ftp;

    public function setUp(){
        parent::setUp();
        $this->ftp = new FTPImage();
    }

    public function tearDown(){
        parent::tearDown();
    }

    ...
}