Are you for one or the other? Or both?
My understanding is unit tests:
- validate the system from the developer's point of view
- help developers practice TDD
- keep code modular
- assist in detecting errors at low levels of granularity
Acceptance tests:
- validate the system from the business and QC / QA points of view
- tend to be high level as they're often written by people not familiar with the inner workings of the code
I feel both are necessary. However, for minimization of redundant work, is it a good idea to try to incorporate unit tests into acceptance tests? In other words, have the latter call the former. Does going in the opposite direction make any sense?
What are your thoughts in general on unit tests vs. acceptance tests, and how to manage them in relation to each other?