Я пишу приложение, используя PHP CodeIgniter Framework. Я пытаюсь протестировать приложение с помощью CI_Unit с расширением PHPUnit. Чтобы протестировать модель, я пытаюсь загрузить поставщика данных YAML, как определено в документации PHPUnit, и получаю сообщение об ошибке. Если я подделаю объект поставщика данных, я получу еще одну ошибку. Если я предоставлю ему ванильный массив PHP, он будет работать так, как ожидалось.
Что я делаю не так? Как правильно это сделать? Ниже приведены мои результаты:
Если я верну объект PHPUnit_Extensions_Database_DataSet_YamlDataSet из файла Yaml ниже, я получу:
Набор данных «Клиенты» недействителен.
Если я зацикливаюсь на объекте, возвращаемом PHPUnit_Extensions_Database_DataSet_YamlDataSet и возвращаю это: я получаю эту ошибку:
PHPUnit_Framework_Exception: ни «models.php», ни «models.php» можно было открыть. в /Users/eric/pear/share/pear/PHPUnit/Util/Skeleton/Test.php в строке 100
Если я предоставлю это ванильный PHP-массив, тесты проходят нормально. Команда, которую я использую для запуска тестов:
модели PHPunit
Ниже приведен пример моего файла YAML.
Clients:
1:
client_id: 1
client_information: "info number 1"
client_key: 48fb10b15f3d44a09dc82d
2:
client_id: 2
client_information: "info number 2"
client_key: 48fb10b15f3d44addd
Я использую PHP 5.3, PHPUnit 3.6.10, DBUnit 1.1.2, CodeIgniter 2.1.0 и CI_unit, связанный с CI 2.1.0.
Редактировать:
Прикреплен мой файл models/Test.php:
/**
* test_add_client
* @dataProvider add_client_provider
*/
public function test_add_client($client_id,$company_id,$software_id,$client_information,$client_key)
{
$data = array('software_id' => $software_id,
'client_information' => $client_information,
'client_key' => $client_key);
try {
$id = $this->_m->add_client($company_id,$data);
$this->assertEquals(true, is_int($id));
} catch (Exception $e){
$this->assertEquals(true,false);
}
}
public function add_client_provider()
{
$result = new PHPUnit_Extensions_Database_DataSet_YamlDataSet(
dirname(__FILE__)."/../fixtures/Clients.yml");
// Case #1 returns this $result
//return $result;
foreach($result as $key => $value){
if($key == 'Clients'){
$substructure = $value;
}
}
// Case #2 return the inner structure that is the table
return $substructure;
// Case #3 return an array of arrays
$data = array(
array(1,1,1,'test','text 2'),
array(1,2,1,'test 3', 'test 3'));
return $data;
}
Подробнее здесь: https://stackoverflow.com/questions/106 ... nit-ciunit
Использование файлов YAML в качестве поставщика данных в PHPUnit (CIUnit) ⇐ Php
Кемеровские программисты php общаются здесь
1710850923
Anonymous
Я пишу приложение, используя PHP CodeIgniter Framework. Я пытаюсь протестировать приложение с помощью CI_Unit с расширением PHPUnit. Чтобы протестировать модель, я пытаюсь загрузить поставщика данных YAML, как определено в документации PHPUnit, и получаю сообщение об ошибке. Если я подделаю объект поставщика данных, я получу еще одну ошибку. Если я предоставлю ему ванильный массив PHP, он будет работать так, как ожидалось.
Что я делаю не так? Как правильно это сделать? Ниже приведены мои результаты:
Если я верну объект PHPUnit_Extensions_Database_DataSet_YamlDataSet из файла Yaml ниже, я получу:
Набор данных «Клиенты» недействителен.
Если я зацикливаюсь на объекте, возвращаемом PHPUnit_Extensions_Database_DataSet_YamlDataSet и возвращаю это: я получаю эту ошибку:
PHPUnit_Framework_Exception: ни «models.php», ни «models.php» можно было открыть. в /Users/eric/pear/share/pear/PHPUnit/Util/Skeleton/Test.php в строке 100
Если я предоставлю это ванильный PHP-массив, тесты проходят нормально. Команда, которую я использую для запуска тестов:
модели PHPunit
Ниже приведен пример моего файла YAML.
Clients:
1:
client_id: 1
client_information: "info number 1"
client_key: 48fb10b15f3d44a09dc82d
2:
client_id: 2
client_information: "info number 2"
client_key: 48fb10b15f3d44addd
Я использую PHP 5.3, PHPUnit 3.6.10, DBUnit 1.1.2, CodeIgniter 2.1.0 и CI_unit, связанный с CI 2.1.0.
Редактировать:
Прикреплен мой файл models/Test.php:
/**
* test_add_client
* @dataProvider add_client_provider
*/
public function test_add_client($client_id,$company_id,$software_id,$client_information,$client_key)
{
$data = array('software_id' => $software_id,
'client_information' => $client_information,
'client_key' => $client_key);
try {
$id = $this->_m->add_client($company_id,$data);
$this->assertEquals(true, is_int($id));
} catch (Exception $e){
$this->assertEquals(true,false);
}
}
public function add_client_provider()
{
$result = new PHPUnit_Extensions_Database_DataSet_YamlDataSet(
dirname(__FILE__)."/../fixtures/Clients.yml");
// Case #1 returns this $result
//return $result;
foreach($result as $key => $value){
if($key == 'Clients'){
$substructure = $value;
}
}
// Case #2 return the inner structure that is the table
return $substructure;
// Case #3 return an array of arrays
$data = array(
array(1,1,1,'test','text 2'),
array(1,2,1,'test 3', 'test 3'));
return $data;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/10630214/using-yaml-files-as-data-provider-in-phpunit-ciunit[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия