Unit Testing, Agile Development, Leadership & .NET - By Roy Osherove
I confess I've not read your post, rather the title. Have you looked at using loop invariants to test the loop?