You do not need a test for each function, instead you should focus on getting tests for all execution paths. So there is no need to test individual private functions, since they should be part of the implementation details and only are a sub part of the unit you are testing.
If you test all private functions you will have to update the tests every time you refactor the code, but if you test the code contracts (public methods) you can refactor the implementation details all you want while having the tests show you if you by accident change the contract.
Ps. it is normal to want to test private methods when starting out with TDD, but you will soon experience that it is not necessary