Как я могу ссылаться на внешних поставщиков данных в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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