Open
Description
Announcing this ambitious mini-project here so that we've got an issue to log things against.
Challenge / Opportunity
- We've been talking about a lack of beginner docs and the desire for more cohesive samples
- There's a lack of good, free "one-stop shop" places for people to learn automated testing principles and put them into practice at the same time.
- We have the opportunity to help a lot of people out and (gently) correct some incorrect notions that some may have about automated testing, TDD, and the part that NUnit plays in those things.
The Intention
- I intend to create a section of articles to serve as a mini-book, "the on-ramp guide", or "Automated Testing & TDD with NUnit: An On-Ramp"
- I intend for this series to introduce the what and why of automated testing and TDD and along the way introduce the user to NUnit by way of implementing these concepts.
- I intend to keep an outline so that others can jump in as they see fit and so that anyone can pick up. I'm not sure the best way to do this yet, but we'll figure it out. I'd like to avoid this taking the format of "unfinished" docs pages. For now, I'll publish the outline here and add to it over time; feel free to make suggestions in this issue and I'll update based on what I read.
- I intend to take feedback from the larger community on what I produce, but I also intend to wait until after I produce it, because that's going to help the content come out a lot faster.
- Where there are differences of opinion, I plan to showcase them and use them to build upon any of my opinions that are expressed.
- I'm a strong believer in "different project; same team". If this takes off in the community and folks ask for an xUnit version, I may ask to move the docs somewhere and enhance them to allow for xUnit / MSTests as well.
The Living Outline
- About This Series
- The "Why" of Tests / TDD / NUnit
- Types of Automated Tests
- Unit
- Integration
- Acceptance/Functional
- UI-based
- Testing Trade-offs
- The testing pyramid / funnel analogy
- Considerations to make
- Where do I start?
- Greenfield Applications
- Legacy Applications
- Other Considerations
- Getting Started with NUnit & TDD
- Creating a test project
- Writing your first tests
- Time to refactor -- wait, what?
- Good testing "rules of thumb"
- Naming conventions
- Aim for one logical assertion
- FIRST rule
- Extracting Common functionality
- Dealing with State in Tests
- Test Cases & Data
- Common testing problems and tactical approaches to solve them
- Individual style guides -- ways we work with these things