Rails 2 introduced ActiveSupport::TestCase and friends, RoR's enhancement of Test::Unit.
Those extra classes made testing Rails controllers easier and removed the need for cluttered setup methods. Today DHH committed a new feature to ActiveSupport::TestCase (by Jay Fields) that allows Rails tests to match up with RSpec's and Shoulda's nicer declaration style test naming: test/do declaration style testing.
In plain Test::Unit each test would be a method named 'test_' followed by the name the test:
def test_email_format_is_validated ... end def test_invalid_credit_card_number_throws_exception ... end
This works ok but is a bit clumsy and gets ugly with long method names. In edge you can now write the test like this
test 'email format is validated' do ... end test 'invalid credit card number throws exception' do ... end
What happens in the background is that ActiveSupport::TestCase will just generate the test_email_format_is_validated method for you. What is missing is a nice integration with the test runner.
This brings Rails developers that envy RSpec's and Shoulda's declarative style to the same level. RSpec&co can still do more tricks but most developers I know really just lust for the it 'should do as I want it to' do ... end syntax and don't really care about the a.should == b.

While I agree that this style is preferrable to just write test_something_that_i_want_to_do, I still think RSpec encourages a different style of testing, especially with the tightly integrated mocking support. It’s not just setting preconditions, calling a method/action, and testing for postconditions, it’s more about what happens inside the method, the behavior, hence behavior driven development.
Since I started using RSpec I’ve been using mocks heavily. It pays off when easily when it comes to complex object collaborator setups, and, well speed. But this addition is definitely a step forward for the plain tests.
I agree that mocking is a very important part of testing and I can see that RSpec makes it a bit easier as it bundles its own mocking lib.
I guess it depends on your background. Coming from (and living) TDD I see no big difference between Test::Unit + Mocha and RSpec. RSpec definitely has more tricks, but ActiveSupport::TestCase is catching up.
We could now argue about RSpec’s assertion syntax, but that’s another story…