Explain the difference between mocks and stubs in unit testing, and when you would choose one over the other.