{"id":20,"date":"2007-09-07T21:48:28","date_gmt":"2007-09-08T03:48:28","guid":{"rendered":"https:\/\/www.chrisedwards.dreamhosters.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/"},"modified":"2010-06-14T22:50:35","modified_gmt":"2010-06-15T04:50:35","slug":"importance-of-treating-unit-tests-as-first-class-code","status":"publish","type":"post","link":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/","title":{"rendered":"Importance of Treating Unit Tests as First Class Code"},"content":{"rendered":"<p>On my previous project, we had a rather large set of unit tests. This collection of tests grew over time and we neglected to maintain them with the fervency in which we maintained our production code. This quickly came back to haunt us.<\/p>\n<p>Making sweeping changes to our codebase became painful because our tests were too difficult to modify. Our test project was weighing us down with code debt.<\/p>\n<p>Always remember that you are only as agile as the weakest code in your codebase. You must maintain your tests as if they were just as important as your production code&#8230;because they are!<\/p>\n<p>We remedied the problem by refactoring our test project extensively, but we should not have had to do so. If only we had been diligent in keeping that codebase well designed and clean from the start&#8230; Don&#8217;t make the same mistake.<\/p>\n<p>-=CE=-<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On my previous project, we had a rather large set of unit tests. This collection of tests grew over time and we neglected to maintain them with the fervency in which we maintained our production code. This quickly came back to haunt us. Making sweeping changes to our codebase became painful because our tests were [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5,3,8],"tags":[76,77,36,71],"class_list":["post-20","post","type-post","status-publish","format-standard","hentry","category-agile","category-principles","category-test-driven-development","category-testing","tag-agile","tag-principles","tag-tdd","tag-testing"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"ChrisEdwards\"\/>\n\t<link rel=\"canonical\" href=\"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Architester - Chris Edwards | Design, Testing &amp; Architecture\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards\" \/>\n\t\t<meta property=\"og:url\" content=\"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2007-09-08T03:48:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2010-06-15T04:50:35+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#article\",\"name\":\"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards\",\"headline\":\"Importance of Treating Unit Tests as First Class Code\",\"author\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/author\\\/chrisedwards\\\/#author\"},\"publisher\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/#organization\"},\"datePublished\":\"2007-09-07T21:48:28-06:00\",\"dateModified\":\"2010-06-14T22:50:35-06:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#webpage\"},\"isPartOf\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#webpage\"},\"articleSection\":\"Agile, Principles, Test-Driven Development, Testing, Agile, Principles, TDD, Testing\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\\\/\\\/architester.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/category\\\/test-driven-development\\\/#listItem\",\"name\":\"Test-Driven Development\"}},{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/category\\\/test-driven-development\\\/#listItem\",\"position\":2,\"name\":\"Test-Driven Development\",\"item\":\"http:\\\/\\\/architester.com\\\/blog\\\/category\\\/test-driven-development\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#listItem\",\"name\":\"Importance of Treating Unit Tests as First Class Code\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#listItem\",\"position\":3,\"name\":\"Importance of Treating Unit Tests as First Class Code\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/category\\\/test-driven-development\\\/#listItem\",\"name\":\"Test-Driven Development\"}}]},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/#organization\",\"name\":\"Architester - Chris Edwards\",\"description\":\"Design, Testing & Architecture\",\"url\":\"http:\\\/\\\/architester.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/author\\\/chrisedwards\\\/#author\",\"url\":\"http:\\\/\\\/architester.com\\\/blog\\\/author\\\/chrisedwards\\\/\",\"name\":\"ChrisEdwards\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3476e01c3ceb55c77ff6a84486161a657ee30d427833aef52e45c6fbc2c1105e?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"ChrisEdwards\"}},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#webpage\",\"url\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/\",\"name\":\"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/2007\\\/09\\\/07\\\/importance-of-treating-unit-tests-as-first-class-code\\\/#breadcrumblist\"},\"author\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/author\\\/chrisedwards\\\/#author\"},\"creator\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/author\\\/chrisedwards\\\/#author\"},\"datePublished\":\"2007-09-07T21:48:28-06:00\",\"dateModified\":\"2010-06-14T22:50:35-06:00\"},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/#website\",\"url\":\"http:\\\/\\\/architester.com\\\/blog\\\/\",\"name\":\"Architester - Chris Edwards\",\"description\":\"Design, Testing & Architecture\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"http:\\\/\\\/architester.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards","description":"","canonical_url":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#article","name":"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards","headline":"Importance of Treating Unit Tests as First Class Code","author":{"@id":"http:\/\/architester.com\/blog\/author\/chrisedwards\/#author"},"publisher":{"@id":"http:\/\/architester.com\/blog\/#organization"},"datePublished":"2007-09-07T21:48:28-06:00","dateModified":"2010-06-14T22:50:35-06:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#webpage"},"isPartOf":{"@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#webpage"},"articleSection":"Agile, Principles, Test-Driven Development, Testing, Agile, Principles, TDD, Testing"},{"@type":"BreadcrumbList","@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"http:\/\/architester.com\/blog#listItem","position":1,"name":"Home","item":"http:\/\/architester.com\/blog","nextItem":{"@type":"ListItem","@id":"http:\/\/architester.com\/blog\/category\/test-driven-development\/#listItem","name":"Test-Driven Development"}},{"@type":"ListItem","@id":"http:\/\/architester.com\/blog\/category\/test-driven-development\/#listItem","position":2,"name":"Test-Driven Development","item":"http:\/\/architester.com\/blog\/category\/test-driven-development\/","nextItem":{"@type":"ListItem","@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#listItem","name":"Importance of Treating Unit Tests as First Class Code"},"previousItem":{"@type":"ListItem","@id":"http:\/\/architester.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#listItem","position":3,"name":"Importance of Treating Unit Tests as First Class Code","previousItem":{"@type":"ListItem","@id":"http:\/\/architester.com\/blog\/category\/test-driven-development\/#listItem","name":"Test-Driven Development"}}]},{"@type":"Organization","@id":"http:\/\/architester.com\/blog\/#organization","name":"Architester - Chris Edwards","description":"Design, Testing & Architecture","url":"http:\/\/architester.com\/blog\/"},{"@type":"Person","@id":"http:\/\/architester.com\/blog\/author\/chrisedwards\/#author","url":"http:\/\/architester.com\/blog\/author\/chrisedwards\/","name":"ChrisEdwards","image":{"@type":"ImageObject","@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3476e01c3ceb55c77ff6a84486161a657ee30d427833aef52e45c6fbc2c1105e?s=96&d=mm&r=g","width":96,"height":96,"caption":"ChrisEdwards"}},{"@type":"WebPage","@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#webpage","url":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/","name":"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards","inLanguage":"en-US","isPartOf":{"@id":"http:\/\/architester.com\/blog\/#website"},"breadcrumb":{"@id":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/#breadcrumblist"},"author":{"@id":"http:\/\/architester.com\/blog\/author\/chrisedwards\/#author"},"creator":{"@id":"http:\/\/architester.com\/blog\/author\/chrisedwards\/#author"},"datePublished":"2007-09-07T21:48:28-06:00","dateModified":"2010-06-14T22:50:35-06:00"},{"@type":"WebSite","@id":"http:\/\/architester.com\/blog\/#website","url":"http:\/\/architester.com\/blog\/","name":"Architester - Chris Edwards","description":"Design, Testing & Architecture","inLanguage":"en-US","publisher":{"@id":"http:\/\/architester.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Architester - Chris Edwards | Design, Testing &amp; Architecture","og:type":"article","og:title":"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards","og:url":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/","article:published_time":"2007-09-08T03:48:28+00:00","article:modified_time":"2010-06-15T04:50:35+00:00","twitter:card":"summary","twitter:title":"Importance of Treating Unit Tests as First Class Code | Architester - Chris Edwards"},"aioseo_meta_data":{"post_id":"20","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-02-03 04:59:47","updated":"2025-12-10 07:13:36","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"http:\/\/architester.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"http:\/\/architester.com\/blog\/category\/test-driven-development\/\" title=\"Test-Driven Development\">Test-Driven Development<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tImportance of Treating Unit Tests as First Class Code\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"http:\/\/architester.com\/blog"},{"label":"Test-Driven Development","link":"http:\/\/architester.com\/blog\/category\/test-driven-development\/"},{"label":"Importance of Treating Unit Tests as First Class Code","link":"http:\/\/architester.com\/blog\/2007\/09\/07\/importance-of-treating-unit-tests-as-first-class-code\/"}],"_links":{"self":[{"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/posts\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":1,"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/posts\/20\/revisions"}],"predecessor-version":[{"id":159,"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/posts\/20\/revisions\/159"}],"wp:attachment":[{"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/media?parent=20"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/categories?post=20"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/architester.com\/blog\/wp-json\/wp\/v2\/tags?post=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}