Skip to content

Latest commit

 

History

History
67 lines (44 loc) · 2.18 KB

File metadata and controls

67 lines (44 loc) · 2.18 KB

TDD-C-Sharp

This is a hands-on workshop covering TDD in C Sharp.

Prerequisites

Recommended Visual Studio Code Extensions

  • C#
  • .NET Core Test Explorer
  • Coverage Gutters
  • LiveShare

Visual Studio Code - Code Coverage

  1. Add Extension: .NET Core Test Explorer
  • "dotnet-test-explorer.testProjectPath": "**/**Tests.csproj"
  • "dotnet-test-explorer.testArguments": "--collect:\"XPlat Code Coverage\""
  1. Add Extension: Coverage Gutters
  • "coverage-gutters.showLineCoverage": true
  • "coverage-gutters.coverageFileNames": ["coverage.cobertura.xml"]

TDD TRAINING

This 2-day course covers the fundamentals of Test Driven Development with an emphasis on learning the skills and techniques necessary to perform this discipline in the real world. Participants will begin with simple exercises and migrate to advanced techniques for building applications designed for testing, reducing the need for using stubs and mocks. Additionally, the course will address issues associated with working in legacy code.

TOPICS COVERED

  • XP, SOLID, DRY, YAGNI, ZOMBIES
  • Clean Code, Craftsmanship, Naming, Refactoring
  • The Red, Green, Refactor loop
  • Using Mocks, Stubs, Fakes, Doubles, and other testing patterns
  • Test Driven Development in C#

LEARNING OUTCOMES

Participants will be able to...

  • Appreciate the benefit of writing clean, maintainable code
  • Identify the relationship between software quality and TDD
  • Recognize that TDD promotes safe, rapid changes to existing code through immediate feedback
  • Understand the appropriate time to use mocks and stubs
  • Identify good and bad testing patterns
  • Identify code smells for identifying non-testable code

Participants will become familiar with:

  • Writing tests first
  • Multiple paired testing techniques
  • How to modify software design using a test-first approach

TARGET AUDIENCE

  • Quality Assurance / Test Automation (Technical)
  • Engineers / Developers