¿Sigue siendo necesario DatabaseCleaner con las especificaciones del sistema Rails?

Por todo lo que he leído sobre las nuevas especificaciones del sistema Rails 5.1, entiendo que Rails ahora maneja las transacciones de la base de datos internamente.

DeBlog de Rspec: "[anteriormente] sus pruebas y su código bajo prueba no pueden compartir una transacción de la base de datos, por lo que no puede utilizar el mecanismo integrado de RSpec para revertir los cambios de la base de datos, sino que requiere una gema como limpiador de bases de datos. Con las pruebas del sistema, el equipo de Rails ha hecho el arduo trabajo para garantizar que este no sea el caso, y para que pueda utilizar de forma segura el mecanismo de RSpec, sin necesidad de una gema adicional ".

Mi experiencia es diferente:

Mis pruebas de características de Rspec fueron aprobadas después de actualizar a Rails 5.1.Cambié el nombre de las especificaciones de 'característica' para convertirme en especificaciones de 'sistema'. Todas las pruebas pasaron.Quité elLimpiador de bases de datos gema, y eliminó todas las referencias derails_helper.rb. Las pruebas JS ahora fallan debido avalidates uniqueness errores Las pruebas que no son de JS pasan.

Mis pruebas son muy simples.

let(:subject) { page }
let(:user) { create :user, name: "TestUser" }
it "displays the user page", :js do
  visit user_path(user)
  it is_expected.to have_content "TestUser"
end

Con el limpiador de bases de datos deshabilitado y:js => true yo obtengouser named TestUser already exists. Con:js => false La prueba pasa.

¿Cuál es la situación actual con las pruebas del sistema y rspec? ¿Rails maneja las transacciones de la base de datos internamente o todavía se necesita el limpiador de la base de datos? ¿Alguien ha encontrado esto, o puede señalarme información relevante?

Respuestas a la pregunta(1)

Su respuesta a la pregunta