任何人都在使用Zend Framework的Behat?有關如何使用兩者的任何示例?Zend Framework與Behat的集成BDD
16
A
回答
12
我明白了。它適用於PHPUnit
和Zend_Test
,因此您可以使用所有那些漂亮的assertXYZ()
方法。首先,請確保已安裝behat
,並可在系統$PATH
中使用。我做了以下內容:
sudo pear channel-discover pear.symfony.com
sudo pear channel-discover pear.behat.org
sudo pear install behat/behat
現在,創建一個目錄結構如下所示:
features
application
ControllerTestCase.php
bootstrap
FeatureContext.php
homepage.feature
的features/application/ControllerTestCase.php
類是一個典型的Zend_Test
測試執行:
<?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();
}
}
的features/bootstrap/FeatureContext.php
類Behat需要自行啓動:
<?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();
}
}
層
現在你可以寫的功能,如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"
運行測試,cd
到包含features
文件夾的目錄,然後鍵入behat
。
祝你好運!
0
Codeception has module for Zend Framework。這很像Behat,但測試是用PHP DSL編寫的,而不是在Gherkin中編寫的。
0
我的場景總是停在第一步。我終於明白了,有一個死亡,或者在我的代碼中退出某處,導致完整性停止。所以請確保您的應用程序不包含任何死亡或退出。現在它工作正常。
相關問題
- 1. Zend Framework 2 Behat
- 2. Zend Framework與XAMPP集成
- 3. Zend Framework pChart集成
- 4. 將外部腳本與Zend Framework集成
- 5. Zend Framework 2 Codeception集成
- 6. Zend Framework和PHPBB集成
- 7. Zend Framework和Wordpress集成
- 8. 與Laravel包和Behat的持續集成
- 9. Zend Framework和Facebook Connect之間的集成
- 10. 集成Zend Framework和Doctrine的問題
- 11. 如何將FuelPHP與Behat集成?
- 12. Zend Framework 1.8集成原則應用
- 13. 將RedBean ORM集成到Zend Framework中
- 14. 如何在Zend Framework 1.12中集成paypal?
- 15. 在Zend Framework 2中集成PHPExcel
- 16. 學說2.0集成到Zend Framework 1.10
- 17. 這是將Zend Framework與Doctrine 2集成的正確方法嗎?
- 18. ZEND Framework與Flickr
- 19. 將Facebook Connect登錄/註冊與Zend Framework應用程序集成
- 20. 使用Doctrine ODM將Zend Framework 1.11與MongoDB集成
- 21. 如何將Zend Framework MVC與現有站點集成
- 22. 將Zend Framework與傳統應用程序集成
- 23. 是否可以將Doctrine 2與Zend Framework 1.1x集成?
- 24. Zend Framework與Smarty 3
- 25. BDD和Behat爲一個PHP腳本
- 26. Zend Framework集合驗證
- 27. Zend Framework中的文本字段的自動完成 - Zend Framework 2
- 28. Zend Framework的錯誤與ACL
- 29. Zend Framework vs Zend Framework 2
- 30. PHP Zend Framework生成器
我認爲你可能是這方面的先驅者。我甚至沒有聽說過這個。這聽起來並且從網站看起來很有用。 – 2011-06-02 02:10:54
你想要測試哪些應用程序的元素?全堆棧,用戶界面,API的?根據您的測試目標,有許多不同的方法。 – 2011-07-08 12:31:03