Test code may even live longer than the code it tests. It’s worth investing in good test design that will be cheaper to maintain and more likely to pay back with valuable feedback to both yourself and future developers. It’s about structure of a Test Case, sharing setup, how to verify correct behaviour. Some of this is specific to the programming language and framework you are using. Some of it is general good design principles.

I have a page with suggested series on Test Design for various programming languages. Below is the full list: