
Discover the fundamentals of test driven development, including red green refactor, the three laws, unit test safetynet, code coverage, test types, and testing frameworks and tools.
Learn why test driven development prevents costly production bugs by emphasizing early unit testing and guarding against regressions.
Learn to drive production code with tests first, shaping modular, testable design. Write one failing test, implement the code, then refactor and repeat to practice TDD.
Apply the red, green, refactor cycle in TDD to implement a calculator that adds two numbers. Write a unit test, implement production code to pass the test, and then refactor.
Master the three laws of test driven development: write a failing test first, write only enough production code to pass, and never write production code before tests.
Identify design smells such as rigidity, fragility, immobility, viscosity, and needless complexity; apply SOLID principles to keep tests clean. Rely on automated test suite as a safety net for changes.
Learners explore the five characteristics of a good unit test, including speed, independence, repeatability, self-validation, and clear assertions, and learn why avoiding ordered tests prevents temporal coupling.
Code coverage shows how much code is exercised by unit tests, displayed in Visual Studio. It reaches 70–80 percent, but more coverage costs effort and does not guarantee reliability.
Divide automated tests into unit tests, integration tests, and acceptance tests, and compare their trade-offs. See how TDD applies to all types and how acceptance tests meet customer requirements.
Explore how test-driven development uses unit testing frameworks, acceptance tests, spec flow, selenium, coded ui, and note TDD's independence from mocking frameworks.
Assess where test-driven development fits, acknowledging challenges in security, multithreading, and testing like GUI, distributed objects, performance, load, and usability testing; write tests first only when beneficial.
Learn to write tests before production code with TDD, follow red-green-refactoring process and three laws, achieve at least 70 percent test coverage, and run fast, isolated unit, integration, acceptance tests.
Delve into test-driven development in c#, learning TDD techniques—faking, triangulation, obvious implementation—through exercises like Fibonacci numbers, a Roman numeral parser, and tic tac toe, plus continuous testing and multithreading considerations.
Teams define the problem domain through collaboration with customers and developers, create user stories and acceptance tests, and sketch diagrams to guide an agile, iterative TDD process.
Explore how visual studio with resharpen and other editors like arriver influence tdd in c#, focusing on shortcuts, refactoring, and code generation.
Demonstrate test-driven development by implementing the Fibonacci numbers recursively, driving design with multiple unit tests, using triangulation, and refining tests and code together.
Master the three main TDD techniques, faking, triangulation, and the obvious implementation, learning how to substitute constants, expand test cases, and generalize code toward the correct solution.
practice test-driven development by writing unit tests in the console without frameworks before implementing core functionality, covering exceptional, degenerate, and silly cases, including empty strings and max values.
Practice test-driven development in C# by implementing a fizzbuzz style function tested for divisibility by 3 or 5 and returning a string, with an empty string otherwise.
Learn to implement roman numeral parsing using TDD in C#, building a dictionary-based map and handling subtractive notation through iterative tests and refactoring.
Explore how TDD tackles multi-threading challenges with an updateable spin synchronization primitive in C#, showing blocking waits, timeouts, and event-driven callbacks.
Apply test-driven development to build a tic-tac-toe game in C#, implementing a moves counter, board state, and winner detection, with rigorous tests and intelligent running via crunch.
Apply the assert first technique in TDD by starting with the assertion to shape the simplest possible API. Write tests against the same API to verify correctness quickly.
Explore test-driven development of a sticks game in c# with an immutable game model, corner-case and unit tests, and human versus computer moves.
Conclude the section by applying tdd techniques like faking, triangulation, and obvious implementation to build features such as the fibonacci generator and roman numeral parser, while addressing multi-threading challenges.
Today unit testing is the absolutely required skill which is required from any professional developer. Companies expect from developers to know how to write unit tests including all the most important topics such as mocking and test driven development (TDD in short).
This course is all about practicing TDD using C# programming language and NUnit as a unit testing framework. Along the way, we will learn the concepts related to unit testing. This course does not cover all the features of NUnit. This course is way more interesting.
Learning unit testing and TDD puts a powerful and very useful tool at your fingertips. Being familiar with unit testing and TDD you can write reliable and maintainable applications. It is very hard to lead a project which is not covered by unit tests.
Content and Overview
This course is primarily aimed at developers who’re already familiar with the basics of unit testing and dependency injection. Some experience in C# programming is required.
Theory is dead without practice, so starting from the second section, you’ll see tons of programming sessions where I’ll demonstrate how to implement generating of Fibonacci numbers, FizzBuzz, parsing of roman numerals, updateable spin synchronization primitives, tic-tac-toe or crosses and noughts game and game in sticks. You’ll also learn:
How a regular agile development process looks like
That you need to learn shortcuts to practice TDD more smoothly
Three Main TDD techniques: faking, triangulation and obvious implementation
Which tests to write first
How to start writing a test in a TDD manner
Here is my Teaching Approach -
No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth. For absolute beginners, I offer my help on Skype absolutely free, if requested.
Take this course, and you will be satisfied.