Learning Unit Testing and Test Driven Development

If you are interested in learning Unit Testing and/or Test Driven Development with Pluralsight, there are many options to choose from so I decided to write this post to give some pointers.

JavaScript Developers

If you mostly write code in JavaScript, I recommend Nate Taylor’s TDD as a design tool course.

Joe Eames has a couple of courses that might interest you:

If you use Angular JS, you’ll probably want to watch either Angular JS Unit Testing by Bradley Braithwaite, or Testing AngularJS From Scratch by Jesse Liberty

Backbone JS developers will want to watch Backbone.JS In-Depth and Intro to Testing with Mocha and Sinon by Sam Breed.

Engin Arslan has produced a course called Automating the Web Using PhantomJS and CasperJS

For learning continous testing, see Wes Higbee’s Seamless JavaScript Testing with Wallaby.js

Java and Android Developers

Either try Unit Testing in Java With JUnit by John Sonmez

Or Test-Driven Development Practices in Java by Mike Nolan

Novice Android developers can get an introduction to Expresso Testing from Chiu-Ki Chan towards the end of her course Start Developing For Android.

C# and VB.NET Developers

fraidyCat_ChooChoo

Fraidy Cat

Julie Lerman’s Automated Testing for Fraidy Cats Like Me is the easiest course for a gentle introduction to unit testing.

Scared .NET developers should start here. It’s okay, you can come out now!

Another beginner friendly option is Justin Pihony’s course Patterns for Pragmatic Unit Testing, which introduces you to some design patterns that help produce a clean, easy to maintain test suite.

If you are looking to get started doing Test Driven Development and feel confident that you’ll be able to understand and eventually master it, I recommend beginning with David Starr and Scott Allen’s Test First Development Part 1 and then moving onto Part 2.

By now you will have a basic understanding of Behavior Driven Development. You can solidify this knowledge with Rob Conery’s course Pragmatic Behavior-driven Design with .NET

Once you’ve learned these, you should be ready to take on my favorite TDD course by Mark Seemann: Outside In Test Driven Development, and then Advanced Unit Testing.

Most .NET unit testing courses use either NUnit or XUnit.

However if you want to use XUnit.net see Testing .NET Code with xUnit.net 2 by Jason Roberts. Jason has also produced Akka.NET Testing Fundamentals.

For MS Test, Microsoft’s own testing framework, you can watch Unit Testing with MSTest by Phani Tipparaju.

Last but not least, some testing tools that you might want to assess for adoption:

  • Autofixture
  • Shouldly
  • NCrunch

Jason Roberts has done a very good job explaining the benefits of Autofixture and Shouldly in his courses Better .NET Unit Tests with AutoFixture: Get Started and Better Unit Test Assertions with Shouldly.

Erik Dietrich explains NCrunch in Continuous Testing with NCrunch

F# Developers

I’ve never come across an F# developer that didn’t also know C# pretty well, so you should have no problems with the above C# course, however there are also some F# specific options for you. Take a look at my unofficial F# learning path and pick from there.

iOS Developers

Try Matthew Kruczek’s course iOS Unit Testing with XCTest.

Python Developers

Let Emily Bache be your instructor with her course Unit Testing with Python.

Ruby Developers

Rem Zolotykh has produced a course for Ruby on Rails developers called Test Driven Rails with Capybara and Cucumber

SQL Developers

Yes you can unit test in SQL as well, but is it worth the effort? Watch Dave Green’s course Making the Case for Unit Testing Database Code.

Convinced that it’s for you? Try Unit Testing T-SQL Code with tSQLt by Dave Green.

PHP Developers

See Automated Tests with PHPUnit by Anna Filina

Finally

That should be plenty enough to keep you busy for a while, but also bare in mind that there is a lot more to automated testing than just unit testing. Integration testing and End to End testing are also important practices, and there are separate courses available for learning those.

I hope you found this guide helpful, and if you would find it helpful I can produce a follow up guide to learning integration and end to end testing.

2 thoughts on “Learning Unit Testing and Test Driven Development

  1. Pingback: Clean Code: Writing Code for Humans | Zombie Code Kill

  2. Pingback: Building Applications with React and Redux in ES6 | Zombie Code Kill

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s