I also thought so. But one of the main reason I did the way I did was because I learned a lot about the gem after reading the test cases. So when someone else reads it, he will understand that there are different kinds of errors, it could be authentication or bad url error etc. Thats why did not made it generalize.