{"id":9367,"date":"2014-10-20T08:00:11","date_gmt":"2014-10-20T08:00:11","guid":{"rendered":""},"modified":"2019-09-12T12:11:32","modified_gmt":"2019-09-12T12:11:32","slug":"1000-unit-tests","status":"publish","type":"post","link":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/","title":{"rendered":"1000 unit tests"},"content":{"rendered":"<p>The term Test Driven Development was introduced at Gamebasics about a year ago. To be honest, I was sceptic about its value. It\u2019s great, in theory. But maybe it\u2019s to time robbing in reality? Couldn\u2019t our precious time be spent more useful than writing unit tests? After a year working with TDD, I noticed the answer is definitely no. Time spent on DTT is time being spent usefully. Before TDD, every new website built was a leap into darkness. We faced several bugs every single time. For every bug we fixed, two new ones seemed to return. It was time for something new.<\/p>\n<p><strong>TNO<\/strong><br \/>\nTwo specialists from TNO stopped by to advise us. They were very clear: automated testing is a must have. We started immediately. After a trial and error period, a TDD training (learning how to make tests) and creating test area\u2019s, we are now at the point we can make tests for every piece of code we add to our project.<\/p>\n<p>Unit tests are very clever. Firstly, during actual development. To make tests work properly, we had to think about our code\u2019s structure. No more magic void functions. Every path, both negative and positive, have to be created. The functionality can be tested through unit tests, without having to start the rest of the application. After the code is used in the project, the tests are still useful. They prove the fact that built functionalities actually work. Should something change and a test fails, we can anticipate before a user notices something!<\/p>\n<p><strong>TDD is the future<\/strong><br \/>\nAlthough, 1000 unit tests seems like a lot, it only covers a small part of our application. With our experience with using unit tests, I expect the next 1000 will be a lot faster. But only unit tests are not enough. User Interface tests (UI tests) are of equal importance.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The term Test Driven Development was introduced at Gamebasics about a year ago. To be honest, I was sceptic about its value. It\u2019s great, in theory. But maybe it\u2019s to time robbing in reality? Couldn\u2019t our precious time be spent more useful than writing unit tests? After a year working with TDD, I noticed the answer is definitely no. Time spent on DTT is time being spent usefully. Before TDD, every new website built was a leap into darkness. We faced several bugs every single time. For every bug we fixed, two new ones seemed to return. It was time for something new.<\/p>\n","protected":false},"author":39,"featured_media":9368,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-9367","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>1000 unit tests - Miniclip<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"1000 unit tests - Miniclip\" \/>\n<meta property=\"og:description\" content=\"The term Test Driven Development was introduced at Gamebasics about a year ago. To be honest, I was sceptic about its value. It\u2019s great, in theory. But maybe it\u2019s to time robbing in reality? Couldn\u2019t our precious time be spent more useful than writing unit tests? After a year working with TDD, I noticed the answer is definitely no. Time spent on DTT is time being spent usefully. Before TDD, every new website built was a leap into darkness. We faced several bugs every single time. For every bug we fixed, two new ones seemed to return. It was time for something new.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/\" \/>\n<meta property=\"og:site_name\" content=\"Miniclip\" \/>\n<meta property=\"article:published_time\" content=\"2014-10-20T08:00:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-12T12:11:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"781\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeroen Derwort\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeroen Derwort\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/\"},\"author\":{\"name\":\"Jeroen Derwort\",\"@id\":\"https:\/\/www.gamebasics.nl\/#\/schema\/person\/3a4b319cf338d08e6fa2ea4d2f0de6f2\"},\"headline\":\"1000 unit tests\",\"datePublished\":\"2014-10-20T08:00:11+00:00\",\"dateModified\":\"2019-09-12T12:11:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/\"},\"wordCount\":314,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/\",\"url\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/\",\"name\":\"1000 unit tests - Miniclip\",\"isPartOf\":{\"@id\":\"https:\/\/www.gamebasics.nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg\",\"datePublished\":\"2014-10-20T08:00:11+00:00\",\"dateModified\":\"2019-09-12T12:11:32+00:00\",\"author\":{\"@id\":\"https:\/\/www.gamebasics.nl\/#\/schema\/person\/3a4b319cf338d08e6fa2ea4d2f0de6f2\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#primaryimage\",\"url\":\"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg\",\"contentUrl\":\"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg\",\"width\":1200,\"height\":781},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.gamebasics.nl\/en\/home\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"1000 unit tests\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.gamebasics.nl\/#website\",\"url\":\"https:\/\/www.gamebasics.nl\/\",\"name\":\"Miniclip\",\"description\":\"Number 1 mobile game studio in the Netherlands\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.gamebasics.nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.gamebasics.nl\/#\/schema\/person\/3a4b319cf338d08e6fa2ea4d2f0de6f2\",\"name\":\"Jeroen Derwort\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gamebasics.nl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9471324699f9975c07cc7da3148bcfd8c28d6c660b6b5d8b1172e873f900516a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9471324699f9975c07cc7da3148bcfd8c28d6c660b6b5d8b1172e873f900516a?s=96&d=mm&r=g\",\"caption\":\"Jeroen Derwort\"},\"sameAs\":[\"http:\/\/www.jeroenderwort.nl\"],\"url\":\"https:\/\/www.gamebasics.nl\/en\/author\/jeroen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"1000 unit tests - Miniclip","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/","og_locale":"en_US","og_type":"article","og_title":"1000 unit tests - Miniclip","og_description":"The term Test Driven Development was introduced at Gamebasics about a year ago. To be honest, I was sceptic about its value. It\u2019s great, in theory. But maybe it\u2019s to time robbing in reality? Couldn\u2019t our precious time be spent more useful than writing unit tests? After a year working with TDD, I noticed the answer is definitely no. Time spent on DTT is time being spent usefully. Before TDD, every new website built was a leap into darkness. We faced several bugs every single time. For every bug we fixed, two new ones seemed to return. It was time for something new.","og_url":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/","og_site_name":"Miniclip","article_published_time":"2014-10-20T08:00:11+00:00","article_modified_time":"2019-09-12T12:11:32+00:00","og_image":[{"width":1200,"height":781,"url":"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg","type":"image\/jpeg"}],"author":"Jeroen Derwort","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jeroen Derwort","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#article","isPartOf":{"@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/"},"author":{"name":"Jeroen Derwort","@id":"https:\/\/www.gamebasics.nl\/#\/schema\/person\/3a4b319cf338d08e6fa2ea4d2f0de6f2"},"headline":"1000 unit tests","datePublished":"2014-10-20T08:00:11+00:00","dateModified":"2019-09-12T12:11:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/"},"wordCount":314,"commentCount":0,"image":{"@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#primaryimage"},"thumbnailUrl":"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/","url":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/","name":"1000 unit tests - Miniclip","isPartOf":{"@id":"https:\/\/www.gamebasics.nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#primaryimage"},"image":{"@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#primaryimage"},"thumbnailUrl":"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg","datePublished":"2014-10-20T08:00:11+00:00","dateModified":"2019-09-12T12:11:32+00:00","author":{"@id":"https:\/\/www.gamebasics.nl\/#\/schema\/person\/3a4b319cf338d08e6fa2ea4d2f0de6f2"},"breadcrumb":{"@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#primaryimage","url":"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg","contentUrl":"https:\/\/www.gamebasics.nl\/wp-content\/uploads\/2014\/10\/Crash_Test_Dummy.jpg","width":1200,"height":781},{"@type":"BreadcrumbList","@id":"https:\/\/www.gamebasics.nl\/en\/1000-unit-tests\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.gamebasics.nl\/en\/home\/"},{"@type":"ListItem","position":2,"name":"1000 unit tests"}]},{"@type":"WebSite","@id":"https:\/\/www.gamebasics.nl\/#website","url":"https:\/\/www.gamebasics.nl\/","name":"Miniclip","description":"Number 1 mobile game studio in the Netherlands","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.gamebasics.nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.gamebasics.nl\/#\/schema\/person\/3a4b319cf338d08e6fa2ea4d2f0de6f2","name":"Jeroen Derwort","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gamebasics.nl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9471324699f9975c07cc7da3148bcfd8c28d6c660b6b5d8b1172e873f900516a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9471324699f9975c07cc7da3148bcfd8c28d6c660b6b5d8b1172e873f900516a?s=96&d=mm&r=g","caption":"Jeroen Derwort"},"sameAs":["http:\/\/www.jeroenderwort.nl"],"url":"https:\/\/www.gamebasics.nl\/en\/author\/jeroen\/"}]}},"_links":{"self":[{"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/posts\/9367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/comments?post=9367"}],"version-history":[{"count":1,"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/posts\/9367\/revisions"}],"predecessor-version":[{"id":9588,"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/posts\/9367\/revisions\/9588"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/media\/9368"}],"wp:attachment":[{"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/media?parent=9367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/categories?post=9367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gamebasics.nl\/en\/wp-json\/wp\/v2\/tags?post=9367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}