πŸ‡ΊπŸ‡¦ Help Ukraine!

Guides

  1. Introduction
  2. Getting Started
  3. Acceptance Tests
  4. Functional Tests
  5. Unit Tests
  6. Debugging
  7. Modules And Helpers
  8. Reusing Test Code
  9. Advanced Usage
  10. BDD
  11. Customization
  12. Data
  13. API Testing
  14. Codecoverage
  15. Reporting
  16. Continuous Integration
  17. Parallel Execution

Enterprise support

Trainings

Testomatio - Test Management for Codeception

Search

Sequence

Installation

composer require --dev codeception/module-sequence

Description

Sequence solves data cleanup issue in alternative way. Instead cleaning up the database between tests, you can use generated unique names, that should not conflict. When you create article on a site, for instance, you can assign it a unique name and then check it.

This module has no actions, but introduces a function sq for generating unique sequences within test and sqs for generating unique sequences across suite.

Usage

Function sq generates sequence, the only parameter it takes, is id. You can get back to previously generated sequence using that id:

<?php
sq('post1'); // post1_521fbc63021eb
sq('post2'); // post2_521fbc6302266
sq('post1'); // post1_521fbc63021eb

Example:

<?php
$I->wantTo('create article');
$I->click('New Article');
$I->fillField('Title', sq('Article'));
$I->fillField('Body', 'Demo article with Lorem Ipsum');
$I->click('save');
$I->see(sq('Article') ,'#articles')

Populating Database:

<?php
for ($i = 0; $i<10; $i++) {
 $I->haveInDatabase('users', array('login' => sq("user$i"), 'email' => sq("user$i").'@email.com');
}

Cest Suite tests:

<?php
class UserTest
{
 public function createUser(AcceptanceTester $I)
 {
 $I->createUser(sqs('user') . '@mailserver.com', sqs('login'), sqs('pwd'));
 }
 public function checkEmail(AcceptanceTester $I)
 {
 $I->seeInEmailTo(sqs('user') . '@mailserver.com', sqs('login'));
 }
 public function removeUser(AcceptanceTester $I)
 {
 $I->removeUser(sqs('user') . '@mailserver.com');
 }
}

Config

By default produces unique string with param as a prefix:

sq('user') => 'user_876asd8as87a'

This behavior can be configured using prefix config param.

Old style sequences:

Sequence:
 prefix: '_'

Using id param inside prefix:

Sequence:
 prefix: '{id}.'

Actions

Module reference is taken from the source code. Help us to improve documentation. Edit module reference
Don't know how to write tests on your own? We will build or improve them for you. Request a quote for official enterprise support or trainings
❀️ Support us on OpenCollective!
[フレーム]

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /