Listen

Description

I figured this title was appropriate considering it's been a month since our last episode.  We've all been incredibly busy so we hope you've been patient waiting and maybe, just maybe it was worth the wait!  We've crammed quite a bit into this episode which is all about testing.  Follow the more link to see the show notes for this particular episode and don't forget to click one of the share buttons there to let all your friends know about the podcast!In this episode we're primarily talking about Unit Testing.  While that's the focus of the podcast, we also touch on other types of testing so you'll get a basic understanding of the fundamental differences between the types of tests.  Just keep in mind - the testing we're talking about is writing code to test your code.  It's not someone going through and clicking on items in your UI to make sure they work.  We're talking about code testing code to preemptively find problems before they become big problems.

Fun Stuff

It's the holiday season and we would be remiss if we didn't mention our favorite games right now.

Call of Duty Advanced Warfare

Call of Duty Advanced Warfare
Call of Duty Advanced Warfare

 

Middle Earth: Shadow of Mordor

Middle Earth: Shadow of Mordor
Middle Earth: Shadow of Mordor

Vistor Pattern Re-Visited

@TrentApple and loldot both shared the ExpressionVisitor.
Click here to see an example of the ExpressionVisitor class

Mail from You

Ray wanted to try an anti-SQL database.  Ended up with db4o.  Unfortunately it looks like it may be dead.
Here's the link to db4o...
Maybe do a podcast on object to database storage.  Database mappers of various sorts.

Lewis wants us to create a list of our recommended tools.  Check back here in the future and we'll have a link to the post we create that lists out our favorite developer tools.  Everything from command line replacement tools, comparison tools, text editors, etc.
Favorite tools of 2014 Coming Soon!

Marcus wants to hear a podcast on Reactive Extensions.  We may be getting an expert on the show to speak about this stuff....

Testing

Testing in general

Several types of testing (not an exhaustive list):

Unit Testing
http://en.wikipedia.org/wiki/Unit_testing

For a single method that you want to test, you may create a dozen test methods to ensure that when you call that one method you always get your expected results.  So, speaking of unit tests, you're typically not writing ONE unit test to test an existing (or new) method, rather you're creating a number of small unit tests to be concise.

The Triple A Pattern:

Why not just write functional tests as they test higher up?
http://www.jbrains.ca/permalink/not-just-slow-integration-tests-are-a-vortex-of-doom

Should the Singleton get blasted some more?!  Michael tries to defend his true love...

Unit tests should be able to run out of order - this "proves" that you don't have any bad dependencies lying around.

Testing Pyramid - Michael Cohn
http://martinfowler.com/bliki/TestPyramid.html

Test Driven Development - TDD

Should you test first?

Why Test?

Javascript testing

Test Runners

These find your tests and runs them and tells you what succeeds and what fails, typically looking at classes that have been attributed as test classes.

.NET teseting frameworks:

Java's primary testing framework is JUnit
http://junit.org/

Why Does Testing Suck?

Resources - Links to Other Things We Mention in the Show

Huge list of testing resources:
http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks

Code Complete - excellent guide on complete programming

Code Complete
Code Complete

Art of Unit Testing - Learn to unit test from the ground up

Art of Unit Testing
Art of Unit Testing

Structuring Your Unit Tests

Pluralsight - Test First Development

Pluralsight - Test First Development, Part 2

DotCover - JetBrains tool for seeing your code's test coverage

Tips of the Week

Joe found a new podcast he loves - http://www.defensivesecurity.org/

Michael loves DotCover from JetBrains - https://www.jetbrains.com/dotcover/

Allen has found his new keyboard fling, the Microsoft Sculpt Ergonomic

Microsoft Sculpt Ergonomic Keyboard
Microsoft Sculpt Ergonomic Keyboard