A demo module for DrupalCamp Dublin to show test driven module development.
Find a file
2017-10-30 10:44:40 +00:00
config/install Update sort criteria 2017-10-30 10:44:16 +00:00
tests/src/Functional Add comments 2017-10-30 10:44:40 +00:00
.gitignore Get the result of the view 2017-10-30 10:44:15 +00:00
README.md Update README 2017-10-30 10:44:36 +00:00
tdd_dublin.info.yml Add module dependencies 2017-10-30 10:44:15 +00:00

TDD Dublin demo module

A demo module to accompany my TDD - Test Driven Drupal talk at DrupalCamp Dublin 2017.

In order to see my workflow of writing comments first, converting them into failing tests, and then writing the implementation code to make them pass, you can see the list of previous commits and see each step taken, as well as the tags that identify the commits when each failing test is added and then subsequently passes.

Acceptance Criteria

This module will be used to demonstrate how to take a test-driven approach to develop a module to the following acceptance criteria:

  • As a site visitor
  • I want to see a list of all published pages at /pages
  • Ordered alphabetically by title

Running the Tests

These tests are functional tests based on the BrowserTestBase class so need to be executed with PHPUnit (which is required in core's composer.json file). The path to your vendor directory may be different depending on your setup.

Because of autoloading, you will need to be inside Drupal's core subdirectory when running the tests for them to execute successfully.

This also assumes that the module is within a modules/custom directory and named tdd_dublin as per the repository name.

cd core

../vendor/bin/phpunit ../modules/custom/tdd_dublin

You can use PHPUnit's --filter option to specify a single test method to run, rather than all of the tests within the module. For example:

../vendor/bin/phpunit ../modules/custom/tdd_dublin --filter=testOnlyPublishedPagesAreShown