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

Class not found in _before function of Codeception TestCase

我正在使用 Yii2 和 Codeception 编写一些测试,但在 _before() 函数中使用我自己的 class 时出现奇怪的错误:

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 的代码 class:

<?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){
        ...
    }

希望有人能帮助我
提前致谢!

我终于找到了解决办法。我已将 _before_after 函数更改为 setUptearDown。这样,我就可以使用我的 FTPImage class.

这是我所做的:

class FTPImageTest extends TestCase{

    public $ftp;

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

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

    ...
}