У меня есть класс модульного тестирования, в котором я хочу создать экземпляр объекта из другого класса, чтобы я использовал фиксаторы setUpBeforeClass () phpunit. Так что, если я буду использовать этот недавно созданный объект непосредственно в тестовой функции, то он работает нормально.
Если я буду использовать этот объект в другой функции, которая была создана для поставщиков данных. Таким образом, этот объект устанавливается в ноль, потому что провайдеры всегда выполняются первыми.
Есть ли способ вызвать dataProviders непосредственно перед запуском теста?
require_once('Dashboard.php');
Class Someclass extends PHPUnit_Framework_TestCase {
protected static $_dashboard;
public static function setUpBeforeClass()
{
self::$_dashboard = new Dashboard();
self::$_dashboard->set_class_type('Member');
}
/**
* Test Org Thumb Image Existense
* param org profile image : array
* @dataProvider getOrgProfileImages
*/
public function testFieldValidation($a,$b){
//If I call that object function here it will give the result.
//$members = self::$_dashboard->get_members();
//var_dump($members); Printing result as expected
$this->assertTrue(true);
}
public function getOrgProfileImages() : array {
//var_dump(self::$_dashboard);
$members = self::$_dashboard->get_members();
$tmp_array = ['2','2'];
return $tmp_array;
}
public static function tearDownAfterClass()
{
self::$_dashboard = null;
}
}
Ошибка:
Поставщик данных, указанный для Someclass :: testFieldValidation, недействителен.
Вызов функции-члена get_members () со значением null
Пожалуйста, помогите смягчить эту проблему.