I used capybara on my last angular-rails project and it went well. One gotcha is to avoid using PATCH in your angular services because of an issue with capybara. We did have to switch over to selenium with chrome at one point because
I use protractor for testing mobile apps built on ionic and I really don’t like it. It’s nice that you can use ng-model
bindings to find elements, but I find protractor error messages to be incredibly unhelpful. It also doesn’t play too nicely with headless browsers so it’s a bit slow firing up a browser every time. I did do a toy project a while back with the angular app completely decoupled from rails and used protractor there. Ended up using a gulp task to manage rails during protractor tests.
I also use karma + jasmine to angular unit testing, I made some notes on it a while back.
I hate testing directives and am still trying to find a way to make them manageable, cheers for the link @christoomey. I’m still trying to get a good TDD workflow for angular.