I've been grappling with this one for a while. It seems like everyone uses
rspec but so far I've resisted and just used whatever comes bundled with Rails. Currently, that's minitest and it's great.
That said, when people ask why I don't use rspec, I never have a good reason. Just "Uhh, I like it. And it doesn't require another gem". But that's a crap reason, if it makes life easier then just install another gem.
The lovely Aaron Tenderlove finally summed up my thoughts in a far more comprehensible way. http://tenderlovemaking.com/2015/01/23/my-experience-with-minitest-and-rspec.html
tl;dr - rspec is a DSL. It's easy to read and describes the behaviour of a bit of code well.
Minitest is just plain ruby. It means you can refactor it as you would any other code. As long as the tests are clear, then why do you need a DSL to make your code 'readable'? It's not like a non-coder would be reading them anyway, right?
You're probably best to read the post yourself.
I'll be sticking with Minitest for now.