Goals


  • Why unit tests are critical to software quality
  • How unit tests and integration tests differ
  • Popular unit testing frameworks
  • MSTest V2
  • The anatomy of a unit test
  • The 3A pattern (Arrange, Act, Assert)
  • Assertions
  • Expected exceptions
  • Test class inheritance
  • Testing support by Visual Studio edition
  • Visual Studio test projects
  • Test Explorer and other related tools
  • How basic and standard unit tests differ
  • How and when to use traits and playlists
  • How and when to use ordered tests
  • Running tests and managing test results
  • Viewing test results in various ways
  • The purpose of Test-Driven Development
  • Practicing TDD within Visual Studio
  • How to effectively refactor within TDD
  • Why and how to refactor legacy code
  • Happy path vs. sad path testing
  • Testing boundary conditions
  • Organizing tests and test assemblies
  • Test naming conventions (e.g. BDD)
  • How to use data-driven unit tests
  • Why and how to calculate code coverage
  • Concurrent testing using Live Unit Tests
  • Concurrent testing using NCrunch
  • How to use code coverage as a metric
  • Using dummies, fakes, stubs, and mocks
  • Why and how to use Microsoft Fakes
  • Why and how to use Rhino Mocks
  • Why and how to use Microsoft IntelliTest

Who Should Attend


This course is intended for current software development professionals who are involved with building high-quality .NET applications. Students will use Visual Studio while learning how to design, write, and run C# unit tests. They will also learn many relevant practices and techniques, such as TDD, refactoring, and how to test difficult code using doubles

Carga horária


16hs horas aula.