BizSpark SF Lightning Talk: "Refactoring and Test-Driven Development" by Mathias Brandewinder
Upcoming SlideShare
Loading in...5
×
 

BizSpark SF Lightning Talk: "Refactoring and Test-Driven Development" by Mathias Brandewinder

on

  • 499 views

Presentation from November 2011 BizSparkSF Meetup entitled "Tools, Tools and More Tools!" http://www.bizsparksf.com/events/34653282/

Presentation from November 2011 BizSparkSF Meetup entitled "Tools, Tools and More Tools!" http://www.bizsparksf.com/events/34653282/

Statistics

Views

Total Views
499
Views on SlideShare
499
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    BizSpark SF Lightning Talk: "Refactoring and Test-Driven Development" by Mathias Brandewinder BizSpark SF Lightning Talk: "Refactoring and Test-Driven Development" by Mathias Brandewinder Presentation Transcript

    • What is TDD?(answer: Test-Driven Development) … and why you should careClear Lines Consulting · clear-lines.com 11/8/2011 · 1
    • Once upon a Time… Design Implement TestClear Lines Consulting · clear-lines.com 11/8/2011 · 2
    • Stay buggy, my friends!Clear Lines Consulting · clear-lines.com 11/8/2011 · 3
    • Start with the tests! If I needed to Add 1 + 1…Clear Lines Consulting · clear-lines.com 11/8/2011 · 4
    • If I needed to Add 1 + 1…[Test]public void When_Adding_One_Plus_One_Answer_Should_Be_Two(){ // Assert var expectedResult = 2; Assert.That(actualResult, Is.EqualTo(expectedResult));} … I would expect the answer to be 2Clear Lines Consulting · clear-lines.com 11/8/2011 · 5
    • If I needed to Add 1 + 1…[Test]public void When_Adding_One_Plus_One_Answer_Should_Be_Two(){ // Act var actualResult = calculator.Add(1, 1); // Assert var expectedResult = 2; Assert.That(actualResult, Is.EqualTo(expectedResult));} … I would need a CalculatorClear Lines Consulting · clear-lines.com 11/8/2011 · 6
    • If I needed to Add 1 + 1…[Test]public void When_Adding_One_Plus_One_Answer_Should_Be_Two(){ // Arrange var calculator = new Calculator(); // Act var actualResult = calculator.Add(1, 1); // Assert var expectedResult = 2; Assert.That(actualResult, Is.EqualTo(expectedResult));} … I would need some codeClear Lines Consulting · clear-lines.com 11/8/2011 · 7
    • If I needed to Add 1 + 1… … Does the code work?Clear Lines Consulting · clear-lines.com 11/8/2011 · 8
    • Testing frameworks MsTestClear Lines Consulting · clear-lines.com 11/8/2011 · 9
    • It’s not about Testing» It’s about writing Code that works, now» Imagine you had implemented the feature» … then implement it» Rinse & Repeat until you have no test to writeClear Lines Consulting · clear-lines.com 11/8/2011 · 10
    • Why should you care?Clear Lines Consulting · clear-lines.com 11/8/2011 · 11
    • The dreaded L word © www.dilbert.comClear Lines Consulting · clear-lines.com 11/8/2011 · 12
    • “To me, legacy code is simply code without tests.” Michael Feathers, Working Effectively with Legacy CodeClear Lines Consulting · clear-lines.com 11/8/2011 · 13
    • Did I break everything?Clear Lines Consulting · clear-lines.com 11/8/2011 · 14
    • Tests: a Vise holding your code steadyClear Lines Consulting · clear-lines.com 11/8/2011 · 15
    • A good test is» Fast» Focused» Replicable» AutomatedClear Lines Consulting · clear-lines.com 11/8/2011 · 16
    • Refactoring: improve the code structure, without changing its external behavior.Clear Lines Consulting · clear-lines.com 11/8/2011 · 17
    • Red, Green, Refactor » Red: write a little test that doesn’t work » Green: make the test work quickly » Refactor: cleanup time!Clear Lines Consulting · clear-lines.com 11/8/2011 · 18
    • Test-Driven Development is a way of managing fear during programming. Kent Beck, Test-Driven Development by ExampleClear Lines Consulting · clear-lines.com 11/8/2011 · 19
    • The Cast» Me: Mathias Brandewinder – mathias@clear-lines.com (clear-lines.com/blog)» Frameworks/Tools – NUnit: www.nunit.org – xUnit: xunit.codeplex.com/ – Resharper: www.jetbrains.com/resharper/» Books – Kent Beck, “Test Driven Development by Example” – Michael Feathers, “Working Effectively with Legacy Code” – Roy Osherove, “The Art of Unit Testing”Clear Lines Consulting · clear-lines.com 11/8/2011 · 20