Sunday, 6 March 2011

Unit Testing for SharePoint - Part 1

Overview: I am not an expert in Test Driven Development (TDD) but the SharePoint Retreat in London has made me think about using this approach for SharePoint 2010 development. There are various tools to help you perform TDD however, these 2 posts show the approach I am most comfortable with thanks to Andrew Woodward.

This whole article is based on Andrew's session and I really would recommend to any serious development team to get Andrew in to do some upfront consulting and potentially training. Upfront costs and his experience would definately be quickly recovered. If you have already decided to use a TDD get Andrew in to get you dev team up to a good standard with TDD for SharePoint, anyway enough of my sycophantic
dialogue.

Objectives:
Part 1 focuses on using setting up a basic "Magic 8 Ball" to unit test the business logic using nUnit.

Tip: using coding Katas (really good approach to training, this is the 1st time I've used them and they actually really work) to get a full unit testing system working. Tip: Write the unit test and then write the code to fix the test.

At the SharePoint retreat, each session started with a:

Review of the last sessions code (if appicable),

Followed by an overview of what will be the next bit of coding logic (instructor lead teaching/demo exercise),

Break into a new pair programming team to code (old code is throw away and a fresh set of code is started that includes all the exercise from all the previous sessions), and

Loop - Back to step 1 (Review each pairs code).

In this post I am describing the 1st session, what you are trying to do is setup unit testing and write a couple of tests for you "Magic 8 Ball".

1 comments:

Anonymous
said...

Hi,

I can't access the sharepoint site on NUnit.

The error was,

The Web application at [URL] could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.