TDD in C# From A to Z

Grow software by TDD with SpecFlow + TestStack White. Learn test-driven development and improve unit testing skills!

4.28 (1160 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
TDD in C# From A to Z
5,920
students
9.5 hours
content
Jul 2020
last update
$74.99
regular price

What you will learn

Practice TDD in your daily job

Practice katas to improve TDD and understanding of the programming fundamentals

Write acceptance tests with SpecFlow in Gherkin

Develop software in a "true" agile, iterative process

Apply best practices of unit testing and TDD

Why take this course?

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. The course provides solid theoretical base reinforced by tons of practical material.

We start with basics of test-driven development. Why we need TDD? What is TDD? When TDD fails, three laws of TDD, different types of tests, tooling and other fundamental topics. This section is mostly theoretical.   

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   

  • Stack kata   

  • Immutable stack kata   

  • And list kata   

  • What is acceptance testing   

  • About the SpecFlow acceptance testing framework   

  • How to write acceptance tests with SpecFlow in Gherkin language   

  • What are UI tests   

  • What tools for writing UI Tests exist   

  • How to access UI through the TestStack.White framework   

Have you heard about katas? No, I’m talking about programming. In the third section, you’ll learn what is a code kata and I’ll demonstrate three code katas:   

Growing an application by writing tests first, we’re not only writing unit tests first. So, in the next section, you’ll learn what is acceptance testing and integration testing. You’ll learn:   

You’ll need to see how to apply all the material learned by this moment. Practice helps very much with understanding especially when we uncover highly practical topics such as TDD. That’s why I decided to show you how all the things work in practice altogether. So, in the next section, you’ll see a real enterprise approach for working on a software project in action.   

  • I’ll build a bridge to UI through TestStack.White applying the Page Object design pattern   

  • I’ll write acceptance tests using the bridge built for accessing UI   

  • I’ll implement ViewModels and all the corresponding business-logic   

  • What is TDD in the end? Is it possible to live without it?   

  • The relationships between TDD and Agile development process   

  • Should we design architecture upfront or not?   

  • Do unit tests guarantee the success?   

  • Quality of tests, some criterions   

  • How to express data for writing unit tests   

  • Shouldly for writing more readable assertions   

  • Singletons, Static classes and testability, Builder design pattern   

  • And some other important topics

The last two sections are rather philosophical. We will discuss:   

  • What is TDD in the end? Is it possible to live without it?   

  • The relationships between TDD and Agile development process   

  • Should we design architecture upfront or not?   

  • Do unit tests guarantee the success?   

  • Quality of tests, some criterions   

  • How to express data for writing unit tests   

  • Shouldly for writing more readable assertions   

  • Singletons, Static classes and testability, Builder design pattern   

  • and some other important topics

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.

Take this course, and you will be satisfied.

Screenshots

TDD in C# From A to Z - Screenshot_01TDD in C# From A to Z - Screenshot_02TDD in C# From A to Z - Screenshot_03TDD in C# From A to Z - Screenshot_04

Reviews

Eduardo
November 4, 2023
The course is very complete and covers the main ways of testing a system. However, the libraries and tools used are quite outdated compared to current ones. The course needs updating.
Sultonbek
May 4, 2023
Overall good explanation, would be great to add source code to repository and share link in lectures, will appreciate e2e and integration dedicated comprehensive course ))
David
January 24, 2023
IDK.. it was the first video. The instructor seems entertaining, but I just don't have enough experience w/ this yet for the review to mean anything so I'm basically just being nice here
Rosa
January 12, 2023
Amazing!!! The course covers all I needed to understand from scratch this wonderful practice. Thanks!
Jorge
September 23, 2022
Muy bien explicado! sin embargo, tiene un nivel muy alto de lógica de programación que es difícil seguir, pero es SORPRENDENTE su manera de programar.
Eugene
September 10, 2022
The general structure of the tests application is missing. All the examples are "for the sake of simplicity" do not illustrate production structure of tests application to bigger projects than one class. There are a lot of things I learned but 3 hours into a course and I'm not sure how to create a test project inside my solution. Maybe I should've took the basics course or not. Not sure
Randy
September 2, 2022
The course is a bit dated, but provide a good overview of TDD methodologies and strategies. The example of TDD in practice didn't really provide much in the way of practice exercises, and like many tutorials the exercises it did have were too abstract to be really effective. I would still recommend this as a good intro, but I would skim through UI TDD demo unless you are already practicing that and would like to see examples.
L
July 7, 2022
I've read a few books and articles on TDD with simplistic examples, this course goes farther and incorporates solid principles and mocking and dummy codes in a manner that I began to understand what all the authors were trying to accomplish. The final example with the application brought everything into prospective for me, though I'll concentrate on the unit tests more than the integration test in my current projects. The use of interfaces to inject mock databases have been a stumbling block, always talked about but few examples, but here fully utilized. A light bulb when off for me seeing it in action for a more complete integration. The refactoring example for TDD was too hastily explained though. I also didn't give 5/5 because of the example files, which I thought should have been more closely related to the chapters. Even after downloading, I had difficulty relating the examples to the chapters.
John
June 24, 2022
So far so good. My team is putting a focus on testing / TDD, and this looks like a solid in-depth look at the topic.
Rebecca
June 20, 2022
I found this a useful course for how to do TDD unit testing. Suggest add quizzes. More fun ( in my opinion :)) and interactive for us to have to do it from your instructions than just to watch you do it.
Craig
May 29, 2022
A lot of the audio is missing. Quite a lot of the Sticks video is silent, for instance (tried in 2 browsers and the Android app). The overall approach is a bit haphazard - there's no planning up front, something which is described in Beck's TDD book as very important. This means that one has to guess from the code what is being talked about. From what I've seen so far, aspects of TDD are ignored at times, such as writing tests first. In the TicTacToe example, for instance, code to handle alternating noughts and crosses as well as code to handle all ways of winning are written before the tests exist. While there is the option of the obvious solution, the handling of the winner has various possible solutions and could easily go wrong. And part of TDD is that code is never written before the tests, even if the code is obvious.
frank
April 1, 2022
I liked it at first But later, he only explains some code that is already written, and writes the tests TDD is supposed to be a test-first approach, isn't it?
Jonathan
February 2, 2022
yes everything was explained well and i like his accent ... i dont know Engineer Spock but i think he is Russian because he accent sounds like he is from that area
Tamisha
January 4, 2022
Each concept is explained so well. Looking forward to using this and other resources from this author on my dev journey. Thank you so much Engineer Spock!
Niklas
December 14, 2021
The start was good, but at the middle it just felt like watching someone write code with a few comments. It's hard to grasp the concept in actual practice and apply to your own projects

Charts

Price

TDD in C# From A to Z - Price chart

Rating

TDD in C# From A to Z - Ratings chart

Enrollment distribution

TDD in C# From A to Z - Distribution chart
1272028
udemy ID
6/28/2017
course created date
11/20/2019
course indexed date
Bot
course submited by