When I started with SharePoint development I needed to find out the tools for proper testing. Currently I use Nunit and the Resharper Test Runner. If you don’t have or know Resharper, which is very unlikely if you read this :-) , you should definetly check it out! Basically I use to methods for my integration and unit tests as you can see below. Using the Client Object Model SharePoints Client Object Model is the obvious choice for implementing your tests. First you have to reference Assemblies (Microsoft.SharePoint.Client, Microsoft.SharePoint.Client.Runtime) in your project. You can find them in: %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI The following code illustrates how you can use you ClientContext to get all your SharePoint objects. using Microsoft.SharePoint.Client; using NUnit.Framework; namespace BetterBlogTemplate.tests { [TestFixture] public class IntegrationTest { [Test] public void TestInstallationAndConfigurationOfSharePointObjects() { string siteUrl = “http://SharePoint/”; ClientContext clientContext = new ClientContext(siteUrl); Site siteCollection = clientContext.Site; Web web = clientContext.Web; Assert.True(web!=null); //I ran this test on a blog sitecollection. List beiträge = web.Lists.GetByTitle(“Beiträge”); //tell ClientContext what to load. clientContext.Load(web); clientContext.Load(beiträge); //When the query is executed, data is downloaded using sharePoint web services clientContext.ExecuteQuery(); //Now i can go ahead and test whatever I like Assert.NotNull(beiträge.Description); } } } Using this I can write powerful tests using simple tools. I like to write special tests for checking my deployment if I got the time. Using Powershell Automation Assembly One time I had to add an expiration date to blog posts. To achieve this I used a simple timer job. Since I like to write my tests before coding, I wanted to create a test that would create a few entries, run the timer job and check if everything is deleted correctly. The problem was that I couldn’t acess timer jobs through the CSOM. Therefore I needed to find a different way and simply used the dll all the SharePoint  Powershell’s CmdLets use. This is less restrictive and I could test the behavior of my SPTimerJob. So first reference the Microsoft.SharePoint.Powershell.dll in your project which is usually in the GAC: C:\Windows\assembly\GAC_MSIL\Microsoft.SharePoint.PowerShell\\Microsoft.SharePoint.Powershell.dll The code is also very easy:   [Test] public void TestInstallationAndConfigurationOfSharePointObjects() { string siteUrl = “http://SharePoint/”; SPSitePipeBind s= new SPSitePipeBind(siteUrl); SPSite test=s.Read(); System.Console.WriteLine(test.ID); string name = “somejobName”; //There's a PipeBind for all your SharePoint objects SPTimerJobPipeBind jobPipe= new SPTimerJobPipeBind(name); //Just use the read method and voila! You got your JobDefinition and can run the job //from a test SPJobDefinition job= jobPipe.Read(); Assert.NotNull(job); } That’s it for my SharePoint testing needs so far :-)