On my previous team, we used Whidbey, which got all this test functionality build in. From what I understand, before you used NUnit, a seperate Testing Framework for the .Net framework.

As for a unit test, it's more a concept than a specific technology and it's basic function is to test the correctness of a particular piece of code, functionality, etc. It is mostly done by developers, but bigger companies (like M$ here) got seperate testing engineers that write automated test, based on test cases the developer designed as he created his code.

What a developer normally would do, is as he PLAN a certain functionality (unit), he also PLAN how to test it. You will create this functionality and a test as you go along, from there the name "Test Driven Development"

This is just how I see things. Might have it wrong