69 lines
3.9 KiB
Markdown
69 lines
3.9 KiB
Markdown
---
|
||
layout: page
|
||
title: 'Test Driven Drupal: The Book'
|
||
mailchimp_url: 'https://oliverdavi.us18.list-manage.com/subscribe/post?u=b4ac8dd177796d37b93f9c285&id=033c84e0d5'
|
||
contact_email: 'oliver@testdrivendrupal.com'
|
||
---
|
||
<div class="markdown" markdown="1">
|
||
Having [given talks][1] and [written blog posts][0] about automated testing in Drupal, I’m currently in the planning phase of a book and potentially some accompanying screencasts about it, focussing on Drupal 8.
|
||
|
||
I’m still thinking about what use-cases to cover and examples to include, but here are some of the things I’m considering:
|
||
|
||
- What things to test, and what not to test
|
||
- The different types of available tests, and when to use each
|
||
- How to write testable code
|
||
- What happens when I run a test?
|
||
- How to run tests in the Drupal UI
|
||
- How to run tests with the `run-tests.sh` script
|
||
- How to install, configure and run tests with PHPUnit in Drupal 8
|
||
- Viewing HTML from run tests
|
||
- How to write your first test
|
||
- Debugging tests
|
||
- How to organise your test files
|
||
- Selecting the right base class and using test traits
|
||
- Writing your own base test classes, traits and assertions
|
||
- Managing dependencies for your tests (fields, configuration)
|
||
- Creating users, checking access with roles and permissions
|
||
- Creating pages and blocks with Views and testing the output
|
||
- Creating pages with routes and controllers and testing the output
|
||
- Testing custom plugins
|
||
- Testing queuing items and processing queues
|
||
- Testing sending emails
|
||
- Testing custom Twig filters and functions
|
||
<!-- - Testing data migrations -->
|
||
<!-- - Building and testing APIs using RESTful web services module -->
|
||
- Running tests as part of your continuous integration pipeline
|
||
|
||
I’ll most likely be publishing it via Leanpub, and will be sending free chapters, early-bird discounts and links to screencasts and blog posts as I write the book to subscribers of the mailing list.
|
||
|
||
If you have questions or would like to suggest something for me to include in the book, please <a href="mailto:{{ page.contact_email }}">contact me</a>.
|
||
## Mailing List
|
||
|
||
Enter your email address to subscribe to the Test Driven Drupal mailing list.
|
||
</div>
|
||
|
||
<div id="mc_embed_signup">
|
||
<form action="{{ page.mailchimp_url }}" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate p-0" target="_blank" novalidate>
|
||
<div id="mc_embed_signup_scroll">
|
||
<div class="mc-field-group w-full lg:w-1/2 pb-3 font-bold">
|
||
<label for="mce-EMAIL">Email Address <span class="asterisk">*</span>
|
||
</label>
|
||
<input type="email" value="" name="EMAIL" class="required email block w-full border border-grey p-3" id="mce-EMAIL" style="text-indent: 0">
|
||
</div>
|
||
<div id="mce-responses" class="clear p-0 m-0">
|
||
<div class="response p-0" id="mce-error-response" style="display: none"></div>
|
||
<div class="response p-0" id="mce-success-response" style="display: none"></div>
|
||
</div>
|
||
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_b4ac8dd177796d37b93f9c285_033c84e0d5" tabindex="-1" value=""></div>
|
||
<div class="clear"><button type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="bg-blue text-white border-0 px-4 py-3 m-0">Subscribe</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
<link href="//cdn-images.mailchimp.com/embedcode/classic-10_7.css" rel="stylesheet" type="text/css">
|
||
<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script>
|
||
|
||
[0]: {{site.url}}/blog/tags/testing
|
||
[1]: {{site.url}}/talks/tdd-test-driven-drupal
|
||
[2]: {{site.url}}/contact
|