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:

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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow