I’ve been writing some tests for a new hands on lab based on the REST Collection template from the WCF REST Starter Kit. I’m planning on using these tests in the lab to illustrate how to call a RESTful service for add, update, delete purposes. I ran into a problem though. The problem is that if you just run the tests, the services are not hosted by the ASP.NET development server and the tests fail. Instead you have to Debug the solution and then run the tests.
When I asked about this on our internal unit testing forum the feedback I got was that these were not "Unit tests" but really more like "Integration tests". I can understand why people would say this but it caused me to think more deeply about the problem. Is there a legitimate case for "Unit testing" RESTful services? Really the problem is no different with SOAP based web services.
Yes – you can unit test the business logic of the service separately without involving the network stack but especially when it comes to RESTful services I want to test the way the service leverages HTTP. So I will press ahead with these tests – no matter what you call them.
Does anybody know a way I can make VS start the ASP.NET development server when I run the unit tests? I tried the ASP.NET Web testing stuff but it assumes you are testing an ASPX page so it fails.
Windows 7 Update
I’ve updated to a later build in preparation for my keynotes at the MSDN Developer Conferences in Houston, Orlando, Chicago and Atlanta. This one has the new taskbar replacement. It takes a bit of getting used to but it is growing on me. At the bottom of my screen I see icons for programs like SQL Server Management Studio Express. Visually I cannot tell if the program is running or not by looking at it (which is a little weird) but if I click the icon or hover over it I will find out. If it isn’t running, it will launch. If it is, it will restore. If more than one of these are running it will show me a thumbnail of the instances.
Am I still happy with Win7? Absolutely – I’m lovin it!