yii2
Pruebas
Buscar..
Configurar entorno de prueba
Instala Codeception:
composer global status
composer global require "codeception/codeception=~2.0.0" "codeception/specify=*" "codeception/verify=*"
Instalar faker:
cd /var/www/yii // Path to your application
composer require --dev yiisoft/yii2-faker:*
Cree una base de datos, que se usará solo para las pruebas. Puede duplicar la base de datos existente o aplicar migraciones:
cd tests
codeception/bin/yii migrate
Ajuste la configuración de los components['db']
en tests/codeception/config/config-local.php
.
Agregue el directorio /var/www/yii/vendor/bin
a su ruta.
Revise todos los archivos de configuración y .yml
.
Iniciar el servidor web, por ejemplo:
php -S localhost:8080
Ejecutar las pruebas:
codecept run
Más información:
- http://www.yiiframework.com/doc-2.0/guide-test-environment-setup.html
- http://codeception.com/install
- https://github.com/yiisoft/yii2-app-basic/tree/master/tests
- https://github.com/yiisoft/yii2-app-advanced/tree/master/tests
Nota: estas instrucciones son válidas para la versión 2.0.9 de Yii2. En la versión 2.0.10, de acuerdo con Sam Dark, la parte de prueba se volverá a factorizar (y las instrucciones deben actualizarse). La versión 2.0.10 debería lanzarse el 11 de septiembre de 2016: https://github.com/yiisoft/yii2/milestones
Cómo burlarse de ActiveRecord
Si desea simular un AR que no intenta conectarse a la base de datos, puede hacerlo de la siguiente manera (si usa PHPUnit):
$post = $this->getMockBuilder('\app\model\Post')
->setMethods(['save', 'attributes'])
->getMock();
$post->method('save')->willReturn(true);
$post->method('attributes')->willReturn([
'id',
'status',
'title',
'description',
'text'
]);
El problema es que debemos anular el método de los atributos (), ya que ActiveRecord de forma predeterminada obtiene una lista de atributos del esquema de base de datos que intentamos evitar.