Unit Testing (TDD) is possible on .net cf. But there are issues.
You will be using MSTest. Not NUnit, MBUnit, XUnit.net, etc. MSTest.
You will need Visual Studio Professional (as near as I can tell). The easiest way to get started is to right-click on a method you would like to test, then select "Create Unit Test". This sets up the test project for you. Only create one test project. It doesn't like having multiple. Just do this to create the project and get all of the dependencies setup for you. Then create your own test classes.
Mock objects could be an issue. RhinoMocks, Moq, and TypeMock all depend on things that are not available in .net cf. Pex has a project calls Stubs that I'm still looking into. Pex is a Microsoft Research project. You you will end up creating custom fake objects instead.
Test are run on the device emulator. That means they have to be deployed. If you get a strange error when you first start up the test runner, you probably do not have .net 3.5 on the device emulator yet. First deploy your project, then run the tests again.
On the non-testing side:
You do get LINQ to Objects and LINQ to XML. Both are a godsend.
You can talk to a server via WCF, but you don't get all of the endpoints.