Как я могу ссылаться на внешних поставщиков данных в phpunit?Php

Кемеровские программисты php общаются здесь
Anonymous
Как я могу ссылаться на внешних поставщиков данных в phpunit?

Сообщение Anonymous »

Я пытаюсь запустить несколько тестов, используя общий поставщик данных в PHPUnit.

См. тест ниже:

namespace AppBundle\Tests\Controller;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use AppBundle\Tests\DataProvider\XmlDataProvider;

class DefaultControllerTest extends WebTestCase
{
/**
* @dataProvider XmlDataProvider::xmlProvider
* @covers ReceiveController::receiveAction()
* @param string
*/
public function testReceive($xml)
{
$client = static::createClient([], ['HTTP_HOST' => 'mt.host']);
$client->request(
'POST',
'/receive',
[],
[],
[],
$xml
);

$response = $client->getResponse();
$this->assertEquals(200, $response->getStatusCode());
}
}


Теперь мне нужен класс внешнего поставщика данных:

namespace AppBundle\Tests\DataProvider;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class XmlDataProvider extends WebTestCase
{
/**
* @dataProvider
*/
public static function xmlProvider()
{
return array([
'xml1' => ''
]);
}
}


Но когда я запускаю phpunit, я получаю:


1) Предупреждение Данные Поставщик, указанный для
AppBundle\Tests\Controller\DefaultControllerTest::testReceive,
недействителен. Класс XmlDataProvider не существует

2) Предупреждение В классе
"AppBundle\Tests\DataProvider\XmlDataProvider" не найдено тестов.


Как это сделать?

ОБНОВЛЕНИЕ

Фрагмент автозагрузки composer.json для справки:

"autoload": {
"psr-4": {
"AppBundle\\": "src/AppBundle",
"Tests\\": "tests"
},
"classmap": [
"app/AppKernel.php",
"app/AppCache.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
},
"files": [
"vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
]
},


Подробнее здесь: https://stackoverflow.com/questions/458 ... in-phpunit

Вернуться в «Php»