Writing Maintainable Unit Tests
What you'll learn
- How to apply the test pyramid
- Learn about state and behaviour verification
- Understand and apply the DRY, SRP and DAMP principles
- How to organise unit tests
- Build loosely coupled unit tests
- Provide intentful assertions and observations
- A decent understanding of an object-oriented programming language, preferrably C# or Java.
- At the very least some first experiences writing unit tests for production code.
- Basic or intermediate knowledge of xUnit test frameworks (e.g. NUnit, JUnit, xUnit, ...).
- Basic or intermediate knowledge of mocking frameworks in general.
Are unit tests causing you pain? Are they constantly failing whenever you make changes to your production code? Do you spend a lot of time fixing them when they break? Are they difficult to set up and run? Do you have a hard time maintaining or structuring your unit test code? Are they causing you headaches from time to time? Are you on the brink of giving up on writing unit tests altogether or have you already done so?
Or do you just want to step up your game and want to learn more about how to write readable and maintainable unit tests?
This course is for experienced software developers who want to improve upon their existing skills in writing unit tests. By the end of this course, students will have gained the knowledge to build loosely coupled, highly maintainable and robust unit tests that are trustworthy and improve the overall code quality of your software applications. The content of this course is based on 15+ years of experience with Test-Driven Development. This knowledge is essential for becoming a senior-level software developer or a technical lead.
Who this course is for:
- This course is for software developers who want to improve upon their existing skills for writing readable and maintainable unit tests.
I’m a professional software developer since Y2K. A blogger since Y2K+5. Author of the book Writing Maintainable Unit Tests (Leanpub). Provider of training and coaching in XP practices. Curator of the Awesome Talks list. Thinking and learning about all kinds of technologies since forever.
Software development is one of my great passions in life. My goal as a software craftsman is to provide simple and qualitative solutions to complex business problems. In order to accomplish this, I'm continuously deepening my existing skills and expertise while learning new skills and broadening my horizons. Sharing my knowledge and experiences with other people is another one of my lifetime goals.