Mock в PHPUnit + Stabs
Простой и наглядный пример использования моков и стабов для PHPUnit:
1 2 |
$mock = $this->getMock('Yandex', array('send')); $mock->expects($this->once())->method('send')->will($this->returnValue('success')); |
Блог разработчика: Golang, Криптовалюты, Автоматизация, Kubernetes
Простой и наглядный пример использования моков и стабов для PHPUnit:
1 2 |
$mock = $this->getMock('Yandex', array('send')); $mock->expects($this->once())->method('send')->will($this->returnValue('success')); |
Ниже представлен пример сборки билда и прогона codeception тестов для проекта Yii2. Далее после прогона тестов и завершения сборки вы можете выгрузить свой артефакт на S3 либо на FTP(SFTP) сервера через CI сервис Codeship. Пример команд сборки:
1 2 3 4 5 6 7 8 9 10 11 |
# We support all major PHP versions. Please see our docs for a full list # https://documentation.codeship.com/languages/php/ phpenv local 5.6 # update phpunit composer global remove "phpunit/phpunit" --update-with-dependencies composer global require "phpunit/phpunit=4.*" # == install composer global dependencies composer global require "fxp/composer-asset-plugin:~1.1.4" composer global require "codeception/codeception=2.1.*" "codeception/specify=*" "codeception/verify=*" # == install project == composer install --prefer-source --no-interaction |
Пример команд…
Read more
Deployer.php — это система деплоя вашего php кода, написанная на PHP. Представляет она из себя набор готовых «рецептов», которые вы можете использовать и автоматически доставлять ваш код на нужные вам машины. Для проекта, написанного на Yii c шаблоном basic я…
Read more
Простейший тест для проверки валидации формы с файлами под Yii2. Требуется поместить в папку _data тестов тестовый файл чтобы можно было проводить сравнения.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public function testUpload() { $fileUploader = new FileUploaderForm(); $uploadedFile = new UploadedFile(); $uploadedFile->name = "test.jpg"; $uploadedFile->tempName = __DIR__."/../_data/test.jpg"; $uploadedFile->type = "image/jpg"; $uploadedFile->size = 1024; $fileUploader->documentFile = $uploadedFile; $fileUploader->validate(); $this->assertTrue($fileUploader->validate()); } |
Composer жрет очень много памяти на машине, и в случае если машина имеет памяти не так много он будет вечно обрываться с надписью Killed. Проще всего сделать на локальном dev компьютере:
1 |
composer update |
Затем перетащить на сервер composer.lock и просто запустить:…
Read more
Теперь вы можете сами установить на своем сервере и подключить скрипт удвоитель биткойн совершенно бесплатно! Core ядро доступно на Github: https://github.com/Sassoft/Cryptocoin Для установки достаточно прочитать инструкции в README.md Скрипт создан на базе фреймворка Yii 2.0.* Для работы с BTC используется библиотека…
Read more
В PhpStorm в саму IDE встроена панель тестирования phpunit тестов. Но зная что в Yii2 сразу из коробки идет Codeception, который включает в себя также и сам phpunit и плюс дополнительный более удобный метод написания тестов, вывод самих unit тестов…
Read more
Для решения данной проблемы нужно отредактировать файл /etc/phpmyadmin/config.inc.php и прописать техническую таблицу phpmyadmin. 1) Прописываем таблицу phpmyadmin:
1 2 3 4 |
cd /usr/share/doc/phpmyadmin/examples sudo gunzip create_tables.sql.gz mysql -u root -p < create_tables.sql mysql -u root -p -e 'GRANT SELECT, INSERT, DELETE, UPDATE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY "pmapassword"' |
2) Редактируем config.inc.php:
1 2 |
$cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'pmapassword'; |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; |
Открываем phpmyadmin, теперь проблема с некорректной конфигурацией должна уйти.
Меняем правильную тайм зону для PHP интерпретатора. Открываем INI конфигурацию:
1 |
/etc/php/apache2-php5.4/php.ini |
Ищем запись с data.timezone и ставим нужный часовой пояс:
1 |
date.timezone = Europe/Moscow |
Меняем часовой пояс на Ubuntu. Текущая дата на сервере:
1 |
date |
Текущий часовой пояс:
1 |
more /etc/timezone |
Чтобы поменять часовой пояс нужно…
Read more
Для тестирования приватных методов класса через PHPUnit можно воспользоваться специальным классом ReflectionClass, забрать нужный приватный метод и сделать его доступным. Все это делается динамически и при помощи таких движений можно тестировать абсолютно любые методы класса разной области видимости. Приведем пример:…
Read more