});
    it('outer afterEach is called after inner afterEach', function () {
        $calls = [];
        $env = new Env();
        $env->describe('outer', function () use($env, &$calls) {
            $env->afterEach(function () use(&$calls) {
                $calls[] = 'outer';
            });
            $env->describe('and inner afterEach', function () use($env, &$calls) {
                $env->afterEach(function () use(&$calls) {
                    $calls[] = 'inner';
                });
                $env->it('a spec');
            });
        });
        $env->execute();
        expect($calls)->toEqual(['inner', 'outer']);
    });
    it('is supported on top level (Env)', function () {
        $wasCalled = false;
        $env = new Env();
        $env->afterEach(function () use(&$wasCalled) {
            $wasCalled = true;
        });
        $env->describe('a context', function () use($env) {
            $env->it('a spec');
        });
        $env->execute();
        expect($wasCalled)->toBe(true);
    });
});