тестирование базы данных с двоичным типом в MySQL с использованием phpunit - PullRequest
2 голосов
/ 10 октября 2011

Я пытаюсь написать тесты, используя php для базы данных. У меня есть таблица, которая хранит хэш пароля в двоичном виде. Как я могу установить тестовые данные в наборе данных xml, например, здесь есть шестнадцатеричные данные, и я получаю данные об ошибке слишком долго для столбца. Спасибо.

 <dataset>
    <table name="subscription_ips">

     <column>password</column>   
     <row>
       <value>0x771C87E79B130E3FB966E424D7F1358D8DABBA0A26F288C0C1B5D8E3D95F2942100CA54B6824A7AC0964180A9426A1C37C371BA3FDBB000621FE175608C4B16C</value>
     </row>

 </table>

</dataset>

Но похоже, что phpunit не может вставить его, используя

0x771C87E79B130E3FB966E424D7F1358D8DABBA0A26F288C0C1B5D8E3D95F2942100CA54B6824A7AC0964180A9426A1C37C371BA3FDBB000621FE175608C4B16C вместо 0x771C87E79B130E3FB966E424D7F1358D8DABBA0A26F288C0C1B5D8E3D95F2942100CA54B6824A7AC0964180A9426A1C37C371BA3FDBB000621FE175608C4B16C пытается вставить данные теста в таблицу.

Ответы [ 2 ]

2 голосов
/ 10 октября 2011

Это буквальная двоичная строка, которую понимает MySQL.Я подозреваю, что PHPUnit не понимает этого.Вы можете попробовать использовать эквивалент для XML, используя ссылки на сущности, или, может быть, вам повезет, и парсер PHPUnit использует поддержку base64Binary.

1 голос
/ 13 октября 2011

Теперь я вижу решение, подобное замене декоратора:

public function getDataSet($pFileName=null)
{

    if ($pFileName===null) {
        $vFileName = $this->_fixturesDir.'init_flat.xml';
    } else {
        $vFileName = $pFileName;
    }


    $ds = $this->createFlatXmlDataSet($vFileName);
    $rds = new PHPUnit_Extensions_Database_DataSet_ReplacementDataSet($ds);
    $rds->addSubStrReplacement('##HASH_wince4_1318143535##', hash('sha512', 'wince4' . '1318143535', true));
    $rds->addFullReplacement('##NULL##', null);        
    return $rds;        
}

В flatXML: Это не кажется надежным, удобным и масштабируемым. Мы пытаемся заменить некоторый текст на необходимый хеш. Надеюсь, кто-нибудь может предложить более подходящее решение проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...