2016-07-13 3 views
1

Dans Rails, je peux utiliser le mot-clé test pour mes tests, ce que je trouve très attrayant et un meilleur choix pour la verbosité de Rspec.Est-ce que minitest fournit une directive "test"?

Exemple:

class TestMyClass < ActionController::TestCase 
    test 'one equals one' do 
    assert 1 == 1 
    end 
end 

En ce moment je suis en train de créer une pierre précieuse et je veux suivre la même pour mes tests - en utilisant la méthode test. J'ai essayé d'hériter de Minitest et UnitTest et le dernier semble fonctionner. Cependant, j'avais l'impression que Rails utilise Minitest. Est-ce que Minitest fournit une directive test?

Cela fonctionne:

class TestMyClass < Test::Unit::TestCase 
    test 'one equals one' do 
    assert 1 == 1 
    end 
end 

Cela me donne "mauvais nombre d'arguments pour le test":

class TestMyClass < Minitest:Test 
    test 'one equals one' do 
    assert 1 == 1 
    end 
end 

Répondre

2

Non, Minitest exécute des méthodes ordinaires avec des noms ont commencé à partir 'test_'.

La méthode test de ActionController :: TestCase est fournie par Rails et fonctionne comme un simple retour à la ligne pour les méthodes 'test_ *'. Il convertit cette

test 'truish' do 
    assert true 
end 

à cette

def test_truish 
    assert true 
end 

il vérifie également si le corps du test a été défini, si ce n'était pas, il affiche un message d'erreur.