2017-04-16 2 views
0

Je n'arrive pas à comprendre ce problème de test.Comment exécuter exactement les mêmes tests phpunit contre différentes implémentations de SUT?

j'ai écrit un test pour le dépôt de test qui utilise la mise en œuvre en mémoire comme:

class RepositoryTest extends TestCase { 

    function setUp() { 
     // set implementation in the container 
     container()->set(Repository::class, InMemoryRepository::class); 
    } 

    function test_it_can_save() {...} 
    function test_it_can_delete() {...} 
    function test_it_can_query() {...} 
} 

Puis j'ai ajouté une autre mise en œuvre de ce référentiel. Disons que c'est SQLRepository. Je dois exécuter exactement le même ensemble de tests par rapport à ma nouvelle implémentation. Je voudrais juste définir un autre contexte pour les mêmes tests.

Comment puis-je faire cela?

Répondre

0

Ok, je pense que je sais quoi faire.

J'ai juste besoin d'étendre mon test initial et recharger la méthode setUp comme ceci:

class SQLRepositoryTest extends RepositoryTest { 
    function setUp() { 
     // set another implementation in the container 
     container()->set(Repository::class, SQLRepository::class); 
    } 
}