12
Test-Driven Development (TDD) Learn the "Test First" Approach to Coding Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer www.nakov.com

Test-Driven Development (TDD)

  • Upload
    arch

  • View
    41

  • Download
    0

Embed Size (px)

DESCRIPTION

Test-Driven Development (TDD). Learn the "Test First" Approach to Coding. Svetlin Nakov. Technical Trainer. www.nakov.com. Telerik Software Academy. academy.telerik.com. Code and Test vs. Test Driven Development. Unit Testing Approaches. " Code First " (code and test) approach - PowerPoint PPT Presentation

Citation preview

Page 1: Test-Driven Development (TDD)

Test-Driven Development (TDD)Learn the "Test First" Approach to Coding

Svetlin Nakov

Telerik Software Academyacademy.telerik.com

Technical Trainerwww.nakov.com

Page 2: Test-Driven Development (TDD)

Code and Test vs. Test Driven

Development

Page 3: Test-Driven Development (TDD)

Unit Testing Approaches

"Code First" (code and test) approach

Classical approach

"Test First" approach Test-driven development (TDD)

3

Page 4: Test-Driven Development (TDD)

Code and Test Approach

4

Write code

Write unit test

Run and succeed Time

flow

Page 5: Test-Driven Development (TDD)

TDD in One Slide

5

Page 6: Test-Driven Development (TDD)

Test-Driven Development (TDD)

6

Pick а test

Compile and fail

Write code to pass test

Write enough code to compileRun test and fail

Create a test list

Time flow

Write test

Remove duplication

Page 7: Test-Driven Development (TDD)

Why TDD? TDD helps find design issues early

Avoids rework Writing code to satisfy a test isa focused activity Less chance of error

Tests will be more comprehensivethan when written after code

7

Page 8: Test-Driven Development (TDD)

Test-Driven Development

Live Demo: Poker Hands Checker

Page 9: Test-Driven Development (TDD)

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезанияASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET

курсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGapfree C# book, безплатна книга C#, книга Java, книга C# Дончо Минков - сайт за програмиране

Николай Костов - блог за програмиранеC# курс, програмиране, безплатно

?? ? ?

??? ?

?

? ?

??

?

?

? ?

Questions?

?

Test-Driven Development (TDD)

http://academy.telerik.com

Page 10: Test-Driven Development (TDD)

Homework Finish the "Poker" project given in the

Visual Studio Solution "11. Test-Driven-Development-Demo+Homework.zip" using TDD.1. Write a class Card implementing the

ICard interface. Implement the properties. Write a constructor. Implement the ToString() method. Test all cases.

2. Write a class Hand implementing the IHand interface. Implement the properties. Write a constructor. Implement the ToString() method. Test all cases.

3. Write a class PokerHandsChecker (+ tests) and start implementing the IPokerHandsChecker interface. Implement the IsValidHand(IHand). A hand is valid when it consists of exactly 5 different cards.

10

Page 11: Test-Driven Development (TDD)

Homework (2)4. Implement

IPokerHandsChecker.IsFlush(IHand) method. Follow the official poker rules from Wikipedia: http://en.wikipedia.org/wiki/List_of_poker_hands

5. Implement IsFourOfAKind(IHand) method. Did you test all the scenarios?

6. * Implement the other check for poker hands: IsHighCard(IHand hand), IsOnePair(IHand hand), IsTwoPair(IHand hand), IsThreeOfAKind(IHand hand), IsFullHouse(IHand hand), IsStraight(IHand hand) and IsStraightFlush(IHand hand). Did you test all the scenarios well?

7. * Implement a card comparison logic for Poker hands (+ tests). CompareHands(…) should return -1, 0 or 1.

11

Page 12: Test-Driven Development (TDD)

Free Trainings @ Telerik Academy

C# Programming @ Telerik Academy csharpfundamentals.telerik.com

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com