Finally unlocking the secrets of Test-Driven Development (TDD)!

by Jan 24, 2024

Finally unlocking the secrets of Test-Driven Development (TDD)!

Here’s what I’ve been getting wrong all these years…

I never understood TDD. In some cases you know the requirements to create tests, but often I don’t.

Coding is for me research, designing, and trying out multiple things. How can I write tests for something I’m still crafting?

But in the last year, I’m starting to get some new insights about TDD and how to use it when crafting my code.

1) The right level of your tests

More and more I code my logic into message handlers. These handlers are the sweet spot for testing. Not too low level, too detailed, but also not too high level that it gets to abstracted.

Why is this important for TDD?

Because the flow for TDD is: Test -> Implementation -> (Optional) Refactor.

The refactoring should not force you to change the test. This will happen if the test is too low level.

If it is too high level, it isn’t driving the design of your implementation.

2) KISS (Write stupid simple code)

You know those junior programmers that always deliver fast (and get praise for it 🀨). It works for the happy path but fails for anything else.

Be like them when you’re writing the implementation. Write your code as stupidly simple as possible. Just get it to work as fast as possible!

Only when it works do you start adding more test and/or refactor.

3) Write one test, then implement

TDD is all about being agile. I didn’t get this for a long time until I see this video: https://www.youtube.com/watch?v=rdLO7pSVrMY

You don’t write all your test at once. This is what a lot of people get wrong about TDD, me included.

You start with one test and implement that. Then you write your second test.

πŸ’­What are your takeaways from my insights about TDD? Disagree? Completely agree? Something in between? Let me know!

#
Remy van Duijkeren

Remy van Duijkeren

Power Platform Advisor

Microsoft Power Platform Advisor with over 25 years of experience in IT with a focus on (marketing) automation and integration.

Helping organizations with scaling their business by automating processes on the Power Platform (Dynamics 365).

Expert in Power Platform, Dynamics 365 (Marketing & Sales) and Azure Integration Services. Giving advice and strategy consultancy.

Services:
– Strategy and tactics advise
– Automating and integrating

Subscribe to
The Daily Friction

A daily newsletter on automation and eliminating friction

Related Content

ReSharper is 20 years old! πŸŽ‰

ReSharper is 20 years old! πŸŽ‰ Reading https://blog.jetbrains.com/dotnet/2024/07/23/resharper-20-years/ makes me realize how long I have been a .NET developer. I still remember using ReSharper for the first time. πŸ’‘ ReSharper made Visual Studio a much better IDE. πŸš€ It...

read more

Switching from Google to Bing πŸ”

Switching from Google to Bing πŸ” Recently, I've decided to switch from Google Search to Microsoft Bing, and here’s why: Ad Overload on Google: Google's integration of its advertising and search teams has led to a surge in sponsored links. This trend often means...

read more

Improving Optimization?

Improving Optimization? The traditional steps of Optimization: 1. Eliminate 2. Automate or 3. Delegate What if we added a missing element? Simplify. Before automating a convoluted workflow or delegating a tangled task, strip away the unnecessary. Make processes leaner...

read more