What is the argument for mocks? 

Arguments for actual migrations:

* Migrations are guaranteed to change all necessary state in ActiveRecord without having to deal with implementation details.
* The migrations API is pretty stable, which means the test will still work in new versions
* They are really not very slow (see travis-ci runs) and are probably less code than mocking all the things