我正在用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){
...
}
我希望有人可以帮助我 提前谢谢!
答案 0 :(得分:2)
最后我找到了解决方案。我已将_before
和_after
个功能更改为setUp
和tearDown
。这样,我可以使用我的FTPImage类。
这是我做的:
class FTPImageTest extends TestCase{
public $ftp;
public function setUp(){
parent::setUp();
$this->ftp = new FTPImage();
}
public function tearDown(){
parent::tearDown();
}
...
}