"value":"\n <p>When giving talks and workshops or coaching on automated testing and test-driven development, some people may not have written tests before and aren't familiar with the structure or know where to begin.<\/p>\n\n<p>In the workshops I ran for DrupalCamp London and DrupalCamp NYC, I wanted to cover this first before writing any implementation code.<\/p>\n\n<p>Where do you put a test class, and what does it contain?<\/p>\n\n<p>How do you run the tests, and how can you make it pass or fail?<\/p>\n\n<h2 id=\"what-we-did\">What we did<\/h2>\n\n<p>To start, we wrote a test for existing functionality within Drupal core - anonymous users can visit the front page.<\/p>\n\n<p>This is the whole test:<\/p>\n\n<pre><code class=\"language-php\"><?php\n\nnamespace Drupal\\Tests\\my_module\\Functional;\n\nuse Drupal\\Tests\\BrowserTestBase;\nuse Symfony\\Component\\HttpFoundation\\Response;\n\nclass MyModuleTest extends BrowserTestBase {\n\n\u00a0 protected $defaultTheme = 'stark';\n\n\u00a0 \/** @test *\/\n\u00a0 public function the_front_page_loads_for_anonymous_users() {\n\u00a0 \u00a0 $this->drupalGet('<front>');\n\n\u00a0 \u00a0 $this->assertResponse(Response::HTTP_OK);\n\u00a0 }\n\n}\n<\/code><\/pre>\n\n<p>This is a test someone can write, run and see the test pass.<\/p>\n\n<p>They can then experiment by changing the values to make the test fail in different ways.<\/p>\n\n<h2 id=\"what-next%3F\">What next?<\/h2>\n\n<p>Then, we tested anonymous users cannot access the administration pages, which is also already the case in Drupal core, and then authenticated users with the correct permissions could access them.<\/p>\n\n<p>People were getting the idea by now, and we moved on to writing and testing some of our own code.<\/p>\n\n ",
"format":"full_html",
"processed":"\n <p>When giving talks and workshops or coaching on automated testing and test-driven development, some people may not have written tests before and aren't familiar with the structure or know where to begin.<\/p>\n\n<p>In the workshops I ran for DrupalCamp London and DrupalCamp NYC, I wanted to cover this first before writing any implementation code.<\/p>\n\n<p>Where do you put a test class, and what does it contain?<\/p>\n\n<p>How do you run the tests, and how can you make it pass or fail?<\/p>\n\n<h2 id=\"what-we-did\">What we did<\/h2>\n\n<p>To start, we wrote a test for existing functionality within Drupal core - anonymous users can visit the front page.<\/p>\n\n<p>This is the whole test:<\/p>\n\n<pre><code class=\"language-php\"><?php\n\nnamespace Drupal\\Tests\\my_module\\Functional;\n\nuse Drupal\\Tests\\BrowserTestBase;\nuse Symfony\\Component\\HttpFoundation\\Response;\n\nclass MyModuleTest extends BrowserTestBase {\n\n protected $defaultTheme = 'stark';\n\n \/** @test *\/\n public function the_front_page_loads_for_anonymous_users() {\n $this->drupalGet('<front>');\n\n $this->assertResponse(Response::HTTP_OK);\n }\n\n}\n<\/code><\/pre>\n\n<p>This is a test someone can write, run and see the test pass.<\/p>\n\n<p>They can then experiment by changing the values to make the test fail in different ways.<\/p>\n\n<h2 id=\"what-next%3F\">What next?<\/h2>\n\n<p>Then, we tested anonymous users cannot access the administration pages, which is also already the case in Drupal core, and then authenticated users with the correct permissions could access them.<\/p>\n\n<p>People were getting the idea by now, and we moved on to writing and testing some of our own code.<\/p>\n\n ",