J'ai deux tests unitaires qui devraient partager beaucoup de tests communs avec des méthodes d'installation légèrement différentes. Si j'écris quelque chose commeComment hériter des tests unitaires abstraits dans Ruby?
class Abstract < Test::Unit::TestCase
def setup
@field = create
end
def test_1
...
end
end
class Concrete1 < Abstract
def create
SomeClass1.new
end
end
class Concrete2 < Abstract
def create
SomeClass2.new
end
end
alors Concrete1 ne semble pas hériter des tests de Abstract. Ou au moins je ne peux pas les faire fonctionner en éclipse. Si je choisis "Run all TestCases" pour le fichier contenant Concrete1 alors Abstract est exécuté même si je ne le veux pas. Si je spécifie Concrete1 alors il ne fait aucun test du tout! Si je spécifie test_1 dans Concrete1 alors il se plaint qu'il ne peut pas le trouver ("uncaught throw: invalid_test (ArgumentError)").
Je suis nouveau à Ruby. Qu'est-ce que j'oublie ici?
Merci - ce qui est excellent! Il m'a aidé à résoudre enfin http://stackoverflow.com/questions/8888614/how-to-write-and-inherit-from-an-abstract-subclass-of-actioncontrollertestcasecase qui est défini dans le contexte de Rails fonctionnel (contrôleur) tests, et en tant que tel a un petit défi supplémentaire. –
Une autre observation: malheureusement, il semble que cette approche ne permet pas de passer outre les tests inclus. Je suppose qu'un autre hack sera nécessaire pour contourner cela :-( –
Cela n'a pas de sens pour moi Si les classes de test doivent directement hériter de Test :: Unit :: TestCase, comment ActiveSupport :: TestCase et ActionController :: TestCase pas causer le problème décrit dans cette question?Ne sont-ils pas tous deux des niveaux d'héritage supplémentaires entre Test :: Unit :: TestCase et les classes concrètes? –