image
Introduction to Test Driven Development (TDD) - for .NET Core C# using xUnit
Course Introduction
Difficulty
Intermediate
Duration
2h
Students
588
Ratings
4.2/5
Description

Test-Driven Development (TDD) is a discipline that helps to create error-free, quality code, and drives productivity by reducing and eliminating errors as well as providing many other benefits.

This entry-level training course is designed to bring you quickly up to speed with the basic features and processes involved in performing C# based test-driven development using xUnit. It covers the key principles and practices of test-driven development, which you can then utilize within your own software engineering projects.

In this course, you'll be guided through an end-to-end sample project in which we use test-driven development to build, test, and package a .NET Core 3.1 C# based library that will provide an API to convert Bitcoins into foreign currency.

If you have any feedback relating to this course, please contact us at support@cloudacademy.com.

Learning Objectives

  • Understand the fundamentals of TDD and xUnit
  • Use TDD to build, test, and package a .NET Core 3.1 C# based library
  • Perform TDD by performing Red-Green-Refactor iterations
  • Learn how to use TDD to build, test, and package a .NET Core 3.1 C# based library
  • Learn how to create unit tests using the xUnit testing framework

Intended Audience

  • Software developers interested in using TDD to build .NET Core applications using C#

Prerequisites

To get the most out of this course, you should have a basic understanding of .NET Core and the C# programming language, as well as software development and the software development life cycle (SDLC).

Resources

Transcript

Hello and welcome to this course. .NET Core C#, Test Driven Development using xUnit primer presented to you by CloudAcademy. In this lesson, I'll cover off the course agenda, intended audience, learning objectives, and course prerequisites.

Now I'm really excited to be taking you through this course. Test Driven Development or TDD, a discipline practice and preached by many, correctly and rigorously helps you to create error free, quality code. Over time, your investment in C# based Test Driven Development will help drive productivity by reducing and eliminating errors as well as providing many other benefits such as improving your overall design, documenting your public interfaces, and safeguarding you against regressions and accidental future mistakes.

Before we continue, let me quickly introduce myself. I'm Jeremy Cook. I'm one of the trainers here at CloudAcademy, specializing in DevOps and software engineering. If at any time during the course, you'd like more information or have unanswered questions, then please reach out to us at support@cloudacademy.com. We really do appreciate all feedback.

This entry-level training course is designed to bring you quickly up to speed with the basic features and processes involved in performing C# based Test Driven Development using xUnit. This course will present to you the key Test Driven Development principles and practices, which you can then utilize within your own software engineering projects.

In this course, I'll first provide you with the theory behind Test Driven Development. Once we've covered the fundamentals, I'll then next demonstrate an end to end sample project in which we use Test Driven Development to build, test, and package a .NET Core 3.1 C# based library.

This library will provide an interface or API to convert Bitcoins into foreign currency. The library itself can then be imported into other C# based projects. Internally, the library performs HTTP calls to Coindesk's public API, to get real time Bitcoin conversion data. It's by no means accidental that this library has an external dependency, that being the Coindesk API. This is intentional as it will allow me to show you how to write unities that involve mocks.

Mocking out external dependencies is a common challenge often encountered when performing Test Driven Development and creating unities. The provided coding demonstrations will also allow you to observe firsthand how to perform Test Driven Development. Incorporating unities creation and performing Red-Green-Refactor iterations.

Viewing these demonstrations will enable you to replicate the same Test Driven Development workflow within your own C# software engineering projects. All of the source code and unities developed and presented within the demonstrations, are available from within CloudAcademy's GitHub account.

The exact repository location of the source code is provided here. Please note, the repository is structured using branches. A separate branch exists for each of the given demonstrations. Therefore, it should be very easy for you to quickly jump ahead to areas of interest simply by checking out the respective Git branch.

The intended audience for this course includes, software developers interested in the Test Driven Development workflow and software developers looking to learn how to use Test Driven Development to create and validate applications built with .NET and C# using the freely available, xUnit testing framework.

By completing this course, you will learn about the principles, practices and processes that drive a Test Driven Development workflow. Learn how to establish Test Driven Development within a nice C# project using xUnit, learn how to use xUnit effectively. And finally, you'll learn and understand how to build and complete a full .NET C# solution using Test Driven Development and xUnit.

The following prerequisites will be both useful and helpful for this course. A basic understanding of .Net and the C- sharp programming language, and a basic understanding of software development in the software development life cycle. Okay. The course introduction has now been completed. Go ahead and close this lesson and I'll see you shortly in the next one.

About the Author
Students
142723
Labs
69
Courses
109
Learning Paths
209

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.

Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).