Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unit testing the prequel

501 views

Published on

Published in: Technology, Business
  • Be the first to comment

Unit testing the prequel

  1. 1. Unit Testing – The Prequel Gil Zilberfeld, Product Manager Jan 29th, 2013 @gil_zilberfeld
  2. 2. Prepare • Know your tools • Evaluate the risk • Choose your partner @gil_zilberfeld
  3. 3. Step 1: What to test • What to test: • What you’re working on • Bug or feature? • Logic • What not to test: • Multithreading • Stored procedures • UI @gil_zilberfeld
  4. 4. Step 2: Get ready • Pick organization strategy • Create test projects • Remove fluff • VS I’m looking at you @gil_zilberfeld
  5. 5. Step 3: Pick a scenario • Scenario: • Context • Action • Success criteria • Pick the simplest one • Say it! • Name it! • Assert it! @gil_zilberfeld
  6. 6. How code looks @gil_zilberfeld
  7. 7. Simple path test @gil_zilberfeld
  8. 8. “Happy path” test @gil_zilberfeld
  9. 9. Step 3: Pick a scenario • Scenario: • Context • Logic • Success criteria • Pick the simplest one • Say it! • Name it! • Assert it! @gil_zilberfeld
  10. 10. Step 4: Identify dependencies • Read the code • Constructor parameters • Fields • Statics • Global state • Mocking strategy • None (Integration) • Hand-rolled • Interface based • Anything goes @gil_zilberfeld
  11. 11. Let’s play: Where are the dependencies? @gil_zilberfeld
  12. 12. Step 5: Simplify design • Automatic refactoring • Close down regions you’re not going to cover • Rename fields • Extract methods • Manual refactoring works too • …but more risky @gil_zilberfeld
  13. 13. Step 6: Here we go! • Arrange Run Fail • Arrange Run Fail ….. • Success! @gil_zilberfeld
  14. 14. Step 7: Next! • Pick the next scenario • Say it • Name it • Assert it • Mutate the test setup • Arrange Run Fail … • Win! @gil_zilberfeld
  15. 15. Congratulations! • This is just the beginning • Lifetime improvement • Picking scenarios • Naming • Mocking • Refactoring • … and much more! @gil_zilberfeld
  16. 16. Questions? www.typemock.com www.gilzilberfeld.com typemock.com/blog gilz@typemock.com @typemock @gil_zilberfeld @gil_zilberfeld

×