2012-05-13 26 views
27

Leí en alguna parte que 'minitest' es la "nueva prueba :: unidad para ruby ​​1.9.2+".minitest, test :: unit, y rieles

Pero rubí 1.9.3 parece incluir tanto test::unit y minitest, ¿es cierto?

En la prueba de los carriles por defecto, como se indica en las Rails testing guide .... cosas como ActiveSupport::TestCase, ActionController::TestCase, estas son las usando Test::Unit o Minitest?

En los carriles de guía, que muestra ejemplos con pruebas definidas de esta manera:

test "should show post" do 
    get :show, :id => @post.id 
    assert_response :success 
end 

que la sintaxis, test string, en contraposición a la definición de métodos con nombres como test_something - no se menciona en los documentos para Test::Unit o Minitest. ¿De dónde viene eso? ¿Rails lo está agregando, o es realmente una parte de ... lo que sea que estén usando las pruebas de los rieles lib?

PD: Por favor, no me diga "simplemente use rspec". Sé sobre rspec. Estoy tratando de explorar las alternativas de stdlib, en el contexto de los rieles.

Respuesta

16

Hay un módulo de "compatibilidad" Test::Unit que viene con Minitest, por lo que (presumiblemente) puede usar las pruebas existentes de Test :: Unit tal como están. Este es probablemente el módulo Test::Unit que está viendo.

A partir de los carriles 3.2.3, las pruebas creadas por el generador incluyen rails/test_help que incluye test/unit.

La sintaxis test "something" do es una extensión de raíles. Se define en ActiveSupport::Testing::Declarative, que es require 'd por rails/test_help.

+3

El modo "compatibilidad" es una broma - que no se molestan en hacer coincidir las convenciones de nombrado afirman * y que sólo va cuesta abajo desde allí. –

Cuestiones relacionadas