Giter VIP home page Giter VIP logo

codeception's Introduction

Codeception

Build Status

Codeception is a new PHP full-stack testing framework. Inspired by BDD, it provides you an absolutely new way of writing acceptance, functional and even unit tests. Powered by PHPUnit 3.6.

At a Glance

Describe what you test and how you test it. Use PHP to write descriptions faster.

Run tests and see what actions were taken and what results were seen.

Sample acceptance test

<?php

$I = new TestGuy($scenario);
$I->wantTo('create wiki page');
$I->amOnPage('/');
$I->click('Pages');
$I->click('New');
$I->see('New Page');
$I->submitForm('form#new_page', array('title' => 'Tree of Life Movie Review','body' => "Next time don't let Hollywood create art-house!"));
$I->see('page created'); // notice generated
$I->see('Tree of Life Movie Review','h1'); // head of page of is our title
$I->seeInCurrentUrl('pages/tree-of-life-movie-review'); // slug is generated
$I->seeInDatabase('pages', array('title' => 'Tree of Life Movie Review')); // data is stored in database
?>

Ok, as for unit test similar approach may seem weird, but...

Take a look at this:

Sample unit test

<?php
class UserControllerCest {
    public $class = 'UserController';

    public function createAction(CodeGuy $I)
    {
        $I->haveFakeClass($userController = Stub::makeEmptyExcept('UserController'));
        $I->executeTestedMethodOn($userController, array('username' => 'MilesDavis', 'email' => '[email protected]'))
        $I->seeResultEquals(true)
        $I->seeMethodInvoked($userController, 'renderHtml')
        $I->seeInDatabase('users', array('username' => 'MilesDavis'));
    }
}
?>

Anyway, if you don't really like writing unit tests in DSL, Codeception can run PHPUnit tests natively.

Documentation

Documentation on Github

Documentation is currently included within the project. Look for it in the 'docs' directory.

Installation

PEAR

Install latest PEAR package from GitHub:

pear channel-discover codeception.com/pear
pear install codeception/Codeception

Phar

Download codecept.phar

Copy it into your project.

Run CLI utility:

php codecept.phar

Getting Started

If you successfully installed Codeception, run this command:

codecept bootstrap

this will create a default directory structure and default test suites

codecept build

This will generate Guy-classes, in order to make autocomplete work.

See Documentation for more information.

License

MIT

(c) Michael Bodnarchuk "Davert" 2011-2012

codeception's People

Contributors

davertmik avatar tiger-seo avatar akovardin avatar artyfarty avatar judgedim avatar natrim avatar lostintime avatar nike-17 avatar jkurb avatar jamesmoey avatar jonphipps avatar f0rm4t avatar pborreli avatar paulchubatyy avatar samdunne avatar sarahbackhouse avatar sergiigrebeniuk avatar williamn avatar danpecher avatar kkamkou avatar

Watchers

Loïc Faugeron avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.