I want to begin integrating unit tests into my Django projects and I've discovered unit testing a view to be tricky because of the way Django implements views with functions.
For example, each function is a view/page in Django if the function has a URL.
How do I unit test Django views?
I'm not sure how testing a view is tricky.
You just use the test client.
Code coverage is easy. You reason how how a URL request maps to a code path and make the appropriate URL requests.
You can, if you want, call the view functions "manually" by creating a Request object and examining the Response object, but this is too much work.
If you have doubts about your code coverage, that's a good thing. It means you have code you can't easily map to a URL (which is all a user can ever see of a web application.) If you have code that doesn't map to a URL, you should probably either (a) delete the code or (b) refactor it into a separate module.
We have lots of modules outside our view functions. Our view functions import these modules. We test these "outside the view function" modules with ordinary unittest.
Here's a typical structure.
You could try tddspry - collection of helpers to test Django with nosetests and twill. Nose also have coverage plugin which generate pretty reports of the coverage.
django.test.client should have everything you need for basic unit testing of the view. I also really like twill and selenium for testing the full stack.