I think you need to call $browser.defer.flush() (to emulate Q's nextTick())... the $timeout and $interval mocks cover that, you probably want to add a mock for the $debounce service