The art of Unit Testing in .NET Master Class


Bilgi İçin Arayın - (212) 268 78 40


with Roy Osherove

The Problem

Unit testing, done badly, can hurt your project more than it helps. In some cases, it may lead to project schedule delays, and unhappy developers due to huge maintenance problems. But when unit testing is done right, it can help the project and developers’ confidence immensely.

The challenge is – how do you do it in a way that is helping, rather than hurting your project?

Objective

In this workshop we will learn essential test driven skills and techniques for writing unit tests in a readable, maintainable and trustworthy fashion, so that we can feel more confident in our code, make it simpler, and save ourselves time in debugging and maintaining our code base. we will also look at some code design issues that hurt testability.

  1. Learn how to write readable, maintainable, trustworthy unit tests using C#,NUnit and other unit testing tools and frameworks.
  2. Learn how to refactor and test legacy code, and what to do when we cannot change existing code.
  3. Learn the principles of Test Driven Development, and develop new features using TDD.
  4. Learn how to Pair Program, and experience it throughout the course
  5. Learn about mocks, stubs fakes, and the difference between them
  6. Learn about Isolation(mocking) frameworks, how they work, and why some frameworks are more capable than others

Materials

All students get a PDF of all the slides in the course, in downloadable form.

Agenda – Day 1: Beginnings (09:00-16:00)

  1. What is the "unit" in "unit testing"? A discussion about unit of work.
  2. The first unit test
  3. Basic NUnit APIs, test runners, tips and tricks
  4. Writing readable tests
  5. Test Driven Development Introduction
  6. String Calculator Kata Exercises
  7. Value based, State Based and Interaction Based Tests

Agenda – Day 2 Mock Objects and Stubs (09:00-16:00)

  1. Understanding Fakes, Mocks and Stubs
  2. Hand Written Fakes, Stubs and Mocks
  3. Interaction Test Exercises with Hand Written Fakes

Agenda – Day 3: Isolation Frameworks (09:00-16:00)

  1. Isolation Frameworks: Constrained and Unconstrained
  2. Isolation Framework Comparisons (Rhino Mocks, Typemock, Moq, FakeItEasy, NSubstitute, NUnitMocks, MsFakes)
  3. Exercises
  4. Unit Testing Best Practices
  5. Code Review Exercises


Biz Sizi Arayalım


Katılımcı Görüşleri

Yapı Kredi Bankası

Herkeste Agile konusunda bir farkındalık oluştu. Yaptığımız işler başka türlü de yapılabiliyormuş anladık. Bu iş yapış şeklimizi, daha iyi, daha yalın nasıl yaparız diye sorgulamamıza yol açtı. Bir diğer kazanım projeleri gerçekleştirirken değer odaklı bakış açısının yerleşmeye başlaması oldu. ACM bize dönüşümün nasıl yapılabileceği konusunda yol gösterici oldu. Yazının devamını oku...
Teknoloji Genel Müdürü, Yapı Kredi

OBASE

Katıldığım Agile Proje Yönetimi ve Scrum Eğitiminde Scrum hakkında daha önce sahip olduğum ön yargılarım vardı, bu eğitimle birlikte ön yargılarımdan kurtuldum. Takım olmanın önemini en iyi vurgulayan felsefe olduğunu düşünüyorum.
Yazılım Uzmanı, OBASE

BKM

Katıldığım Product Backlog Management Eğitiminde hatalı uygulanan bir çok süreci görmüş oldum. Backlog yönetiminde ve Scrum ekiplerinin yönetimindeki kritik noktalar hakkında fikir sahibi oldum.
Vice President, Fraud Management at BKM

Türk Telekom

"Bu eğitimle Scrum'ı küçük bir projede uygulayarak nasıl faydalar sağladığını birebir görme şansım oldu. Şimdi öğrendiklerimizi gerçek hayatta uygulama zamanı. Eğitmenimize etkili anlatımı, desteği ve sabrı için teşekkür ediyorum."
Proje Yöneticisi, Türk Telekom

Denizbank

"Daha önce farklı bir eğitim kurumu tarafından verilen Scrum eğitimine katılmıştım. Eğitimde anlatılanlar bana çok mantıklı gelmekle birlikte Scrum’ın gerçek hayatta nasıl uygulanabileceğine dair bilgi verilmemiş olması nedeniyle öğrendiklerimi uygulamaya geçirmekte çok zorlanmıştım. Bir süre sonra katıldığım ACM eğitimi sayesinde Scrum’ın bir projede nasıl uygulanması gerektiğini ve uygulamada sıklıkla yapılan hataları uçtan uca öğrendim. Şimdi tüm projelerimizde Scrum uygulamayı gönül rahatlığı ile yönetime önerebiliyorum."
Temel Bankacılık İş Geliştirme, Denizbank

Yemeksepeti

"Eğitimi 1.5 yıl önce tüm IT ekibi ile birlikte aldık. Eğitim beklentilerimizi karşıladı, süreç değişimine başlamak için gerekli bilgiyi ve düşünce yapısını bize aktardı."
Proje Yöneticisi, Yemeksepeti