¿Alguien ha estado usando Behat con Zend Framework? ¿Algún ejemplo sobre cómo usar ambos?Zend Framework integración con Behat BDD
Respuesta
Lo tengo trabajando. Funciona con PHPUnit
y Zend_Test
por lo que puede utilizar todos los métodos nifty assertXYZ()
. Primero, asegúrese de tener behat
instalado y disponible en su sistema $PATH
. Hice lo siguiente:
sudo pear channel-discover pear.symfony.com
sudo pear channel-discover pear.behat.org
sudo pear install behat/behat
Ahora, crear una estructura de directorios, así:
features
application
ControllerTestCase.php
bootstrap
FeatureContext.php
homepage.feature
La clase features/application/ControllerTestCase.php
es típico de una aplicación Zend_Test
prueba:
<?php
require_once 'Zend/Application.php';
require_once 'Zend/Test/PHPUnit/ControllerTestCase.php';
class ControllerTestCase extends Zend_Test_PHPUnit_ControllerTestCase {
public $application;
public function setUp() {
$this->application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH
. '/configs/application.ini');
$this->bootstrap = array($this, 'appBootstrap');
parent::setUp();
}
public function appBootstrap(){
$this->application->bootstrap();
}
}
La clase features/bootstrap/FeatureContext.php
es lo que Behat necesita para iniciarse a sí mismo:
<?php
use Behat\Behat\Context\ClosuredContextInterface,
Behat\Behat\Context\TranslatedContextInterface,
Behat\Behat\Context\BehatContext,
Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode,
Behat\Gherkin\Node\TableNode;
require_once 'PHPUnit/Autoload.php';
require_once 'PHPUnit/Framework/Assert/Functions.php';
define('APPLICATION_ENV', 'testing');
define('APPLICATION_PATH', dirname(__FILE__) . '/../path/to/your/zf/application');
set_include_path('.' . PATH_SEPARATOR . APPLICATION_PATH . '/../library'
. PATH_SEPARATOR . get_include_path());
require_once dirname(__FILE__) . '/../application/ControllerTestCase.php';
class FeatureContext extends BehatContext {
protected $app;
/**
* Initializes context.
* Every scenario gets it's own context object.
*
* @param array $parameters context parameters (set up via behat.yml)
*/
public function __construct(array $parameters) {
$this->app = new ControllerTestCase();
$this->app->setUp();
}
/**
* @When /^I load the URL "([^"]*)"$/
*/
public function iLoadTheURL($url) {
$this->app->dispatch($url);
}
/**
* @Then /^the module should be "([^"]*)"$/
*/
public function theModuleShouldBe($desiredModule) {
$this->app->assertModule($desiredModule);
}
/**
* @Given /^the controller should be "([^"]*)"$/
*/
public function theControllerShouldBe($desiredController) {
$this->app->assertController($desiredController);
}
/**
* @Given /^the action should be "([^"]*)"$/
*/
public function theActionShouldBe($desiredAction) {
$this->app->assertAction($desiredAction);
}
/**
* @Given /^the page should contain a "([^"]*)" tag that contains "([^"]*)"$/
*/
public function thePageShouldContainATagThatContains($tag, $content) {
$this->app->assertQueryContentContains($tag, $content);
}
/**
* @Given /^the action should not redirect$/
*/
public function theActionShouldNotRedirect() {
$this->app->assertNotRedirect();
}
}
Y ahora se puede escribir funciones como features/homepage.feature
:
Feature: Homepage
In order to know ZF works with Behat
I need to see that the page loads.
Scenario: Check the homepage
Given I load the URL "/index"
Then the module should be "default"
And the controller should be "index"
And the action should be "index"
And the action should not redirect
And the page should contain a "title" tag that contains "My Nifty ZF App"
para ejecutar las pruebas, cd
al directorio que contiene la carpeta features
y escriba behat
.
¡Buena suerte!
Codeception has module for Zend Framework. Es muy parecido a Behat, pero las pruebas están escritas en PHP DSL y no en Gherkin.
Mi escenario siempre se detenía en el primer paso. Finalmente lo descubrí, había un dado oy salí a algún lado de mi código que se detenía por completo. Así que asegúrese de que su aplicación no contenga ningún dado o salida. Ahora está funcionando bien.
- 1. Integración PHPExcel en Zend Framework
- 2. Zend Framework y XML/XSLT Integración
- 3. Grails buena BDD framework
- 4. Integración de Doctrine 2.0 en Zend Framework 1.10
- 5. Zend Framework 2 para Zend Framework Newbie
- 6. BDD Android UI testing framework?
- 7. Crear cronjob con Zend Framework
- 8. ¿Cómo comenzar con zend framework?
- 9. Behat over Cucumber in PHP
- 10. Cómo Zend Framework con Propel ORM
- 11. zend framework "$ this"
- 12. Zend Framework Oauth Provider
- 13. Zend Framework Casillas Anidadas
- 14. ¿Alguien está usando el Specter BDD Framework?
- 15. Zend Framework Layout
- 16. RESTful Zend Framework API
- 17. PHP Zend Framework Generator
- 18. Cómo atender páginas estáticas con Zend Framework
- 19. Consulta RAW SQL con Zend Framework
- 20. Zend Framework 1.11 con Doctrine 2 Integration
- 21. Zend Framework con Kohana PHP 3
- 22. Fusionando 2 pdf con Zend Framework
- 23. ¿Por dónde empiezo con Zend Framework?
- 24. Cómo usar GROUP_CONCAT con Zend Framework?
- 25. Zend Framework Formularios personalizados con viewScript
- 26. Pruebas unitarias con Zend Framework/Doctrine 2.0
- 27. Conexión MySql SSL con Zend-Framework
- 28. ¿Cómo uso PHPUnit con Zend Framework?
- 29. Cómo integrar PayPal con Zend Framework
- 30. Carga de archivos con Zend Framework 1.7.4
Creo que puede ser un pionero en esto de alguna manera. Ni siquiera había oído hablar de behat. suena y parece útil desde el sitio. –
¿Qué elementos de su aplicación está buscando probar? Pila completa, interfaz de usuario, API? Existen diferentes enfoques según sus objetivos de prueba. –