Designing your test methods using a simple structure such as given-when-then will help you:
- Communicate the purpose of your test more clearly
- Focus your thinking while writing the test
- Make test writing faster
- Make it easier to re-use parts of your test
- Highlight the assumptions you are making about the test preconditions
- Highlight what outcomes you are expecting and testing against.
In this post I’ll be talking about designing your test cases/test methods using given-when-then.
It doesn’t matter if you are using pytest, unittest, nose, or something completely different, this post will help you write better tests.
Note: This was originally a writeup done after the Python Test Podcast episode 10. However, I think it stands pretty good on it’s own as a post.