How to approach writing tests - a podcast by Kent C. Dodds

from 2021-01-25T18:42:30

:: ::

Hey there friends. So today I'm going to talk about testing and the users
of your code and how you should think about like how what do I test? Sopretty common question. And the answer is basically you take a unit of code
that you want to have tested that could be a single function or it could bean entire application.
It really just comes down to what you want to get confidence in. Most of usare probably in the camp of like I just want my to be sure that my entire
application works and that's great. And that'sTypically where where I'm
thinking and in my own mindset sometimes though, it's hard to accomplish
the thing that you're trying to test from a whole application perspective
and that's when you go to lower level forms of testing but that's not what
I'm going to talk about today.
So once you've identified the unit of code that you want to have tested the
next thing you need to do is think about who the users of that code are. Soif we're talking about a react component, for example, then you're going to
have two users of your code.And in fact most of the time,You're going to have two users of your code,
unless you're doing full-on and to end testing with nothing mocked. And the
two users are the end user who's going to be interacting with that code and
the developer user who's going to be making network requests to your API
handler or maybe they're calling into your function or their rendering your
component, whatever it is.So you have those two two users of your code. And so then as you're
thinking about what you know, what you should write.For your test you're
going to say okay well so what is the what do mind users do What are theuse cases that this code supports and how do I make like what are of those
use cases what are the most important things that I ensured don't break?
Because they're like for an application there are some parts of the
application that matter more than others. And so you're going to identify
all the use cases that you want to support and kind of sort them in yourmind or maybe even write it down. The order of priority for those things.
So once you have decided what use cases you want to support you just goone.By one to write a test for that particular use case. And the way that
you write that is you could even write this in code comments or somethingbefore you write the test you just say how do if I were a user manually
testing this whether you're the end user or the developer user probably
both how would I interact with this component to make it do the thing thatI'm trying to support?
How do I show that use case in my test? And then you write code to do that.I hope that's helpful and I hope you have a splendid day. Good luck.And
writing those tests get yourself a lot of confidence and we'll see you
around.

Further episodes of 3 Minutes with Kent

Further podcasts by Kent C. Dodds

Website of Kent C. Dodds