Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Introduction to TDD in C#
Rating: 4.2 out of 5(543 ratings)
16,473 students

Introduction to TDD in C#

Learn test driven development: make code testable, robust and maintainable. Bring unit testing skills to the next level.
Created byEngineer Spock
Last updated 7/2020
English
English [Auto],

What you'll learn

  • Practice TDD in your daily job

Course content

2 sections30 lectures3h 13m total length
  • Download Source Code0:02
  • Join Chat in Telegram0:02
  • Outline1:06

    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.

  • Why we need TDD?16:18

    Learn why test driven development prevents costly production bugs by emphasizing early unit testing and guarding against regressions.

  • What is TDD?5:00

    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.

  • Red / Green / Refactor4:16

    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.

  • Three Laws of TDD1:42

    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.

  • Changing Requirements and the Safety Net5:23

    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.

  • F.I.R.S.T.2:48

    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 Coverage2:19

    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.

  • Types of Tests and TDD4:04

    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.

  • Testing Frameworks and Tools5:06

    Explore how test-driven development uses unit testing frameworks, acceptance tests, spec flow, selenium, coded ui, and note TDD's independence from mocking frameworks.

  • When TDD Fails?2:46

    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.

  • Conclusion2:02

    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.

Requirements

  • You should already be familiar with the basics of C#
  • You should already be familiar with the basics of unit testing

Description

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.

Who this course is for:

  • Any developer who wants to improve professional programming skills