Skip to content

Instantly share code, notes, and snippets.

@everzet
everzet / bad_steps_proposition.php
Created June 7, 2011 19:12 — forked from alexandresalome/gist:1012539
Explaining why classes are not possible in Behat as step definitions
<?php
/*
You can't use classes like this to define steps by the simple reason:
in Behat and Cucumber, step definitions and test contexts ARE two
splitted logical elements, not one. Different step definitions
can be used together in different scenarios and each scenario will
have it's own context (environment) object. That's the main logical
idea behind Behat - define step once - use it everywhere.
@everzet
everzet / rspec_in.php
Created May 19, 2011 21:13
Why RSpec is not possible in PHP
<?php
/*
Why i think, that "RSpec is not possible in PHP"?
Cuz Ruby's syntax abilities can represent
natural language constructions:
object should equals 2
@everzet
everzet / bdd_in_phpunit__vs__phpspec.php
Created May 19, 2011 20:58
comparison of BDD-style PHPUnit VS PHPSpec1 (has almost nothing to do with phpspec2)
<?php
// how that:
class DescribeContextZend extends PHPSpec_Context
{
public function itShouldSetControllerNameUsingContextClass()
{
$context = new DescribeFooController;
$this->spec($context->getController())->should->be('Foo');
@everzet
everzet / config_dev.yml
Created April 27, 2011 12:50
Enabling BehatBundle
framework:
test: ~
behat_mink:
start_url: http://your_app_local.url/app_dev.php/
behat: ~
@everzet
everzet / http_api.feature
Created April 22, 2011 09:50
REST API feature example
Feature: REST API
In order to be able to build my own tool for web application
As a developer
I need to have clean REST API for application
Scenario: List all users
Given application has users:
| name | email |
| ivan | ivan@ex.com |
| dima | dima@ex.com |
@everzet
everzet / symfony_resource_watcher.php
Created March 25, 2011 19:21
New ResourceWatcher component demonstration
<?php
use Symfony\Component\ResourceWatcher\ResourceWatcher,
Symfony\Component\ResourceWatcher\Event\Event,
Symfony\Component\Config\Resource\DirectoryResource,
Symfony\Component\Config\Resource\FileResource;
$watcher = new ResourceWatcher();
$watcher->track(new DirectoryResource('/some/directory'), function($event) {
Feature: New Study
In order to create a new Study
As a Researcher
I must be able to enter information about the study and save it
Scenario Outline: Researcher adds new study
When I enter <study name>
And I enter <short url>
And I enter <welcome text>
And I set self registration to <self registration>
@everzet
everzet / behat_steps.php
Created February 13, 2011 17:08
how to make verbose "equals" assertions in Behat with PHPUnit
<?php
$steps->Then('/^it should pass with:$/', function($world, $data) {
try {
assertEquals((string) $data, $world->output);
} catch (\Exception $e) {
$exceptionDiff = \PHPUnit_Framework_TestFailure::exceptionToString($e);
throw new \Exception($exceptionDiff, $e->getCode(), $e);
}
});
@everzet
everzet / rspec_in_php.rb
Created December 14, 2010 09:40
Explanation in examples why PHP will never have RSpec-like behavioral unit tests
# RSpec (aka "Best in Ruby"):
@account.balance.should == 12
# PHPUnit (aka "Best in PHP"):
$this->assertEquals(12, $account->getBalance());
# PHPSpec:
@everzet
everzet / sahi_driver.example.php
Created November 26, 2010 20:10
SahiDriver PHP example
<?php
require_once '/sahi/driver/path/autoload.php.dist';
use Everzet\SahiDriver;
$connection = new SahiDriver\Connection('@@SAHI_SESSION_ID@@'); // replace with your custom session ID
$browser = new SahiDriver\Browser($connection);
$browser->navigateTo('http://shopopensky.com/');