0

我有以下课程:

class Validator {
 public function __construct($file){                
  $errors = $this->errors($file_array[CSV]['errors']);
  }
 public function errors_func($errors){
  if($errors != 0){
   throw new Exception('Error Uploading');
  }
 }
}

我试图errors_func()直接通过我的测试脚本来定位函数,而不需要先调用构造函数。PHPT测试脚本如下:

--TEST--
check_mime() function - A basic test to see if check mime works. :)
--FILE--

    <?php
    require_once('my/path');
    $valid = new Validation;
    $re = $valid->errors_func('1);
    var_dump($re);
    ?>
    --EXPECT--
    bool(true)

正如您所期望的那样,尽管测试脚本失败了,因为在创建类的对象时需要一个参数。有没有一种方法可以创建 Validation 类的对象,而无需将参数传递给类 __constructer?

4

1 回答 1

0

我通过使用ReflectionClass找到了解决方案。新的测试脚本如下所示:

--TEST--
check_mime() function - A basic test to see if check mime works. :)
--FILE--

    <?php
    require_once('my/path');
    $valid = new ReflectionClass('Validator');
    $valid_direct = $valid->newInstanceWithoutConstructor();
    $re = $valid_direct->errors_func('1);
    var_dump($re);
    ?>
    --EXPECT--
    bool(true)
于 2016-12-10T21:09:43.953 回答