I’m currently working my way through http://www.railstutorial.org/
It uses Rspec along with a TDD approach. I understand that writing lots of tests can help you ward off bugs as your app gets more complex, but I don’t understand why you would write tests for simple things like the existence of a page title. It seems that you end up writing as many tests as actual code.
Is this better over the long term, or is it overkill?
Yes, and sometimes more tests than actual code. The benefit you seem to be missing is that testing for the little things will help you later when you change some seemingly non-related piece of code, and your old tests break.
Let’s say that later on you decide to abstract your page title generation into a helper method that builds all of your page titles for you. If you already have the tests in place, then you’ll know that your helper is working (or not).