edno/codeception-dataprovider

This package is abandoned and no longer maintained. The author suggests using the codeception/codeception package instead.

Codeception extension for supporting data-driven tests

0.1.2 2016-12-04 20:14 UTC

This package is auto-updated.

Last update: 2022-02-01 13:03:33 UTC


README

Latest Version Dependency Status Build Status SensioLabs Insight Scrutinizer Code Quality Coverage Status GitHub license

The Codeception extension for supporting dynamic data driven tests (CEST) using @dataprovider annotation.

‼️ This extension is deprecated from Codeception 2.2.7. The @dataprovider annotation is now a core feature of Codeception (see PR#3737)

‼️ If you are running Codeception 2.2.7, then remove this extension by deleting the corresponding line in composer.json and your codeception.yml. No update required for existing tests using @dataprovider

Minimum Requirements

  • Codeception 2.2
  • PHP 5.4

Installation

The extension can be installed using Composer

$ composer require edno/codeception-dataprovider

Be sure to enable the extension in codeception.yml as shown in configuration below.

Configuration

Enabling DataProvider annotation in your tests is done in codeception.yml.

extensions:
    enabled:
        - Codeception\Extension\DataProvider

Usage

Once installed you will be to use the @dataprovider annotation for defining the method to be use for fetching the test data.
Your data source must be a public static function located within your test class. The method should return data compliant with the @example annotation.

Example

<?php

class ExampleDataProviderCest
{
     /**
      * @dataprovider __myDataSource
      */
      public function testWithDataProvider(FunctionalTester $I, \Codeception\Example $example)
      {
            $expected = ["", "foo", "bar", "re"];
            $I->assertInternalType('integer', $example[0]);
            $I->assertEquals($expected[$example[0]], $example[1]);
      }

      public static function __myDataSource()
      {
          return [
              [1, "foo"],
              [2, "bar"],
              [3, "re"]
          ];
      }
}