- Unit test verifies one piece of code in isolation.
- Code that is unit-testable is code has little dependencies on other modules, and does no I/O (no files, databases, also no Ajax calls, local-storage, DOM access and manipulation. Anything that touches a browser API is I/O).
- End-to-end tests interact with your site like a user: loading pages, filling out forms, clicking buttons.
- They are executed against a system that has all required components to be deployed and running
- Test runs agains live database.
- They are generally slower to write and run, but closely match the real user experience.