Date post: | 05-Dec-2014 |
Category: |
Technology |
Upload: | jay-aho |
View: | 2,383 times |
Download: | 0 times |
TDD 0 to 60 An Introduction in
Test-Driven Developmentin .NETMichael Joseph Kramer
Pillar Technology
http://www.flickr.com/photos/purplepick/2554134479/
What do you mean by “unit test”?
• code tests code
• small
• fast
• independent
http://www.flickr.com/photos/ugocei/6420197/
the whole truthiness
• Anything I can do with a unit test, I can do with a debugger.• It’s an ivory tower activity, not something real businesses do.• Unit testing isn’t for small businesses.• Unit testing isn’t for the enterprise.• We don’t need no stinkin’ unit tests. We have a QA team!• We don’t need no stinkin’ QA team. We have unit tests!• Writing tests will take me longer, which makes it cost more.• Most of the stuff I write isn’t interesting enough for a unit
tests. It’s only for complicated stuff.• Unit testing prevents you from writing crappy software.• Everything I have ever learned about software development is
wrong.
http://www.flickr.com/photos/thelastminute/142252337/
What do I need?
• NUnit
• MbUnit
• MsTest
• xUnit.net
http://www.flickr.com/photos/17258892@N05/2588347668/
http://www.flickr.com/photos/lynac/321100379/
AAA ain’t just the auto club
Arrange – Set it up!Act – Call It!Assert – Verify it worked!
http://www.flickr.com/photos/ethomsen/2815081394//
Is this TDD???
http://www.flickr.com/photos/37612915@N00/350716275/
only refactor green tests!
http://www.flickr.com/photos/jshultz/118841012/
http://http://www.flickr.com/photos/roadsidepictures/469271408//
Weak. My code uses a database...
http://www.flickr.com/photos/helios89/1373343153
Dependencies
• inject the dependency
• replace with a stub
http://www.flickr.com/photos/leecullivan/141114012/
http://www.flickr.com/photos/victius/4064996780/
Why can’t I just go
to the database?
http://www.flickr.com/photos/richpix/1386265680/
Mocking: not just for when your manager out of the room
• a mock knows if your test passed
• behavior, not state
• void methods
• brittle
http://www.flickr.com/photos/mariaclarah/927759528/
http://www.flickr.com/photos/8829172@N02/4010684609/
Mocks aren’t Stubs, abridged
• Stubs vs. Mocks, in a nutshell:
– Stubs: return dummy data
– Mocks: Test passes or fails based on what the method does, not what it returns
– Test Double or Fake: Generic terms for either a mock or stub
I.E., a mock can make a test fail, a stub can’t.
Full Version: http://martinfowler.com/articles/mocksArentStubs.html
http://www.flickr.com/photos/marcobellucci/3534516458/
• Upcoming Webinars: Please visit pillartechnology.com/events
• All of the webinar content is available to your business in a 1-2 day on-site workshop or as a “lunch and learn” format. Please contact us for details.
• Visit www.pillartechnology.com/events to access presentation slides and full archived broadcasts of past webinars.
• Twitter.com/agilesoftware
• Blog: www.pillartechnology.com/blog
• LinkedIn: Join the Agile Enthusiast Group on LinkedIn: http://bit.ly/agilegroup
• YouTube: http://www.youtube.com/user/PillarTechnology
• Phone: (888) 3-pillar
• Web: pillartechnology.com
• Email: [email protected]
Our Next Steps