예제 #1
0
function describe($name, $descriptionFunction)
{
    $oldActual = Spec::getActualExampleGroup();
    if (!$oldActual) {
        $newExampleGroup = \PSpec\ExampleSpec::buildExampleSpec($name);
        $specData = \PSpec\PSpec::getActualSpecData();
        $newExampleGroup->setSpecData($specData);
        Spec::setActualExampleGroup($newExampleGroup);
        $descriptionFunction();
        Spec::emptyActualExampleGroup();
        \PSpec\PSpec::addExampleGroupToActual($newExampleGroup);
    } else {
        $newExampleGroup = \PSpec\ExampleGroup::buildExampleGroup($name);
        $oldActual->addExample($newExampleGroup);
        Spec::setActualExampleGroup($newExampleGroup);
        $descriptionFunction();
        Spec::setActualExampleGroup($oldActual);
    }
}
예제 #2
0
<?php

namespace PSpec\Spec;

describe('PSpec', function () {
    describe('PSpec', function () {
        $pspec = \PSpec\PSpec::build();
        $testDescName = 'test';
        it('getInstance() deve retornar instancia de PSpec.', function () use($pspec, $testDescName) {
            expect($pspec)->should('be an instance of', '\\PSpec\\PSpec');
        });
        describe('addDescription()', function () use($pspec, $testDescName) {
            it('deve retornar instancia de PSpec.', function () use($pspec, $testDescName) {
                expect($pspec->addDescription($testDescName))->should('be an instance of', '\\PSpec\\PSpec');
                $pspec->clearDescriptions();
            });
            it('deve adicionar uma especificação.', function () use($pspec, $testDescName) {
                $pspec->addDescription($testDescName);
                expect($pspec->hasDescription($testDescName))->should('be equals', true);
                $pspec->clearDescriptions();
            });
            it('deve lançar exceção se a especificação não existir.', function () use($pspec, $testDescName) {
                expectException('InvalidArgumentException');
                $pspec->addDescription('testnaoexiste');
            });
        });
        it('clearDescriptions() deve limpar todas as descrições', function () use($pspec, $testDescName) {
            $pspec->addDescription($testDescName)->clearDescriptions();
            expect($pspec->hasDescription($testDescName))->should('be equals', false);
        });
        describe('run()', function () use($pspec, $testDescName) {