51 lines
1.7 KiB
Markdown
51 lines
1.7 KiB
Markdown
# TDD Dublin demo module
|
|
|
|
A demo module to accompany my [TDD - Test Driven Drupal][0] talk at DrupalCamp
|
|
Dublin 2017.
|
|
|
|
## 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
|
|
|
|
## Dependencies
|
|
|
|
The module has a dependency on the `tightenco/collect` library which is
|
|
required in its `composer.json` file. This will need to be installed via
|
|
Composer in order for the tests to run.
|
|
|
|
The library is used only to make it simpler to retrieve data from within an
|
|
array of view results so that assertions can be made against it. The same tests
|
|
could be written in a slightly different way without the dependency if needed.
|
|
|
|
## 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
|
|
```
|
|
|
|
[0]: https://www.oliverdavies.uk/talks/tdd-test-driven-drupal
|