noiselabs/zf-test-case-behat-extension

Integration testing for ZF MVC applications in Behat by exposing Zend\Test classes (originally built for PHPUnit)

Installs: 15 739

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 3

Forks: 2

Open Issues: 0

Type:behat-extension

0.2.0 2017-09-19 12:15 UTC

This package is auto-updated.

Last update: 2024-04-11 13:57:19 UTC


README

Build Status Scrutinizer Code Quality

Integration testing for ZF MVC applications in Behat by exposing Zend\Test classes (originally built for PHPUnit).

Installation

This extension requires:

  • Behat 3.0+

The recommended installation method is through Composer:

$ composer require --dev noiselabs/zf-test-case-behat-extension

You can then activate the extension in your behat.yml:

default:
    # ...
    extensions:
        Noiselabs\Behat\ZfTestCaseExtension\ServiceContainer\ZfTestCaseExtension:
            configuration: </path/to/application.config.php>

Usage

Implement ZfTestCaseAwareContext or extend ZfTestCaseContext:

<?php

use Album\Controller\AlbumController;
use Noiselabs\Behat\ZfTestCaseExtension\Context\ZfTestCaseAwareContext;
use Noiselabs\Behat\ZfTestCaseExtension\TestCase\HttpControllerTestCase;

class MyContext implements ZfTestCaseAwareContext
{
    /**
     * @var HttpControllerTestCase
     */
    private $testCase;

    public function setTestCase(HttpControllerTestCase $testCase)
    {
        $this->testCase = $testCase;
    }
    
    /**
     * @When /^the album endpoint is called$/
     */
    public function testIndexActionCanBeAccessed()
    {
        // See https://docs.zendframework.com/tutorials/unit-testing/
        $this->testCase->dispatch('/album');
        $this->testCase->assertResponseStatusCode(200);
        $this->testCase->assertModuleName('Album');
        $this->testCase->assertControllerName(AlbumController::class);
        $this->testCase->assertControllerClass('AlbumController');
        $this->testCase->assertMatchedRouteName('album');
    }
}

Copyright

Copyright (c) 2017 Vítor Brandão. Licensed under the MIT License.