Skip to content

Extremely simple Laravel Behat extension

Notifications You must be signed in to change notification settings

krzysztofrewak/larahat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest Stable Version Total Downloads License

Larahat extension is an extremely simple way to start behaviour-driven development with Laravel framework and Behat.

Installation

Just use composer, it will add required classes to your vendor directory at Larahat namespace:

composer require krzysztofrewak/larahat --dev

Usage

Locate your Behat configuration file (usually it's a behat.yml) and add Larahat\BehatExtension to your extensions list. You can also provide a custom .env filename via env variable, but by default it will be always .env.behat.

default:
  extensions:
    KrzysztofRewak\Larahat\BehatExtension:
      env: ".env.behat"

From now, in your context files you are able to use app() helper for retrieving your bootstrapped Laravel application. For example, you can handle requests directly into your application like that:

/**
 * @When :method request is sent to :endpoint endpoint
 * @param string $method
 * @param string $endpoint
 */
public function requestIsSentToEndpoint(string $method, string $endpoint): void
{
    $request = Request::create($endpoint, $method);
    app()->handle($request);
}

Helpers

  • KrzysztofRewak\Larahat\Helpers\DisablingThrottling trait added to your context helps with disabling throttling middleware;
  • KrzysztofRewak\Larahat\Helpers\RefreshDatabase trait added to your context helps with refreshing database with every scenario;
  • KrzysztofRewak\Larahat\Helpers\SimpleRequesting trait added to your context helps with sending requests and receiving responses from your application.

Development

You can use Composer in a container if you want to:

docker-compose run -w /application -u "$(id -u):$(id -g)" composer install