we understand that the unit testing is trying to test the functionality and making sure that the acceptance criteria is also met at the same time. I would like to mention one more point is that we should also try to write unit test cases not just only test the functionality but also try to do a good code coverage. unit test cases are tools for: 1. functionality testing 2. comply with acceptance criteria 3. a tool to help good code coverage 4. be iterative. be backward compatible as long as it could. (anyway to add logic based on version of the code change? need to think on this). yes it makes it little bulky but will work and avoid needing code cleanup and redesigns.
let unit tests help come up with min 80% of code coverage.