<p>When you start a new project, when should you start writing tests and doing test-driven development?</p>
<p>Is it before you write any code, or is it something you can start later?</p>
<p>When starting <a href="/daily/2024/02/19/introducing-versa">versa</a>, I was only scaffolding the console commands and running some basic commands such as "composer install" and "phpunit".</p>
<p>At that point, there wasn't any business logic to test.</p>
<p>The first versions only supported PHP, so there was no complexity around which language the project used.</p>
<p>There was no logic to determine which language or package manager was used.</p>
<p>Now I've started to add this functionality - such as determining the project type from its composer.json or package.json file - there is logic to test, and I've started to write tests and do test-driven development.</p>
<p>At this phase, I can see the value, which I couldn't when setting up the application to begin with, and different have any logic worth testing.</p>
format:full_html
processed:|
<p>When you start a new project, when should you start writing tests and doing test-driven development?</p>
<p>Is it before you write any code, or is it something you can start later?</p>
<p>When starting <a href="/daily/2024/02/19/introducing-versa">versa</a>, I was only scaffolding the console commands and running some basic commands such as "composer install" and "phpunit".</p>
<p>At that point, there wasn't any business logic to test.</p>
<p>The first versions only supported PHP, so there was no complexity around which language the project used.</p>
<p>There was no logic to determine which language or package manager was used.</p>
<p>Now I've started to add this functionality - such as determining the project type from its composer.json or package.json file - there is logic to test, and I've started to write tests and do test-driven development.</p>
<p>At this phase, I can see the value, which I couldn't when setting up the application to begin with, and different have any logic worth testing.</p>