Test setup is hard, it's tricky, and it feels like a hack. That's how you know you're doing it right. (maybe?)
- Why you aid testability by wrapping $resource in an api service.
- Test setup and mocking in jasmine to handle api services.
- How to test and resolve promises in your controller specs.
All of the code is available on [plunkr][1]