1: je croyais que les procédures stockées et plutôt difficiles à porter d'un SGBD à un autre voire d'une version d'un SGBD à une autre.
2 : avec HIBERNATE et JAVA on ne code le CRUD qu'une fois avec un DAO générique :on utilise des éléments qui font la force de JAVA (il a des mécanismes analogues dans d'autres langages objets) : héritage et générics => moins de code à écrire qu'en PL SQL sur ce cas précis.
3 : un test unitaire doit permettre de tester le bon fonctionnement d'un bout de code en isolation des autres. En JAVA c'est possible avec les mock (avec les librairies de mock on a peu de chose à écrire à la main). en PL SQL celà ne me semble pas possible ou difficilement.
ex : une procédure A fait un traitement et appelle des traitements faits dans des procédures B et C. Comment tester A sans utiliser B ni C?
4 : l'ensemble des tests unitaires doivent tourner rapidement.
en JAVA 80/90% des tests unitaires seront sur la couche métier et la BDD ne sera pas sollicitée (on mocke les DAO) et les tests unitaires restant porteront sur les DAO : pour ces cas, on remplit une BDD de test avec un jeu de données de test puis on joue le test unitaire puis on remet la BDD de test dans son état initial. On procède ainsi afin de respecter une autre règle sur les tests unitaires : leur indépendance entre eux.
Au final l'ensemble des tests unitaires passeront très vite.
en PL SQL il faudra taper dans la BDD de test pour tous les tests (et après chaque test la remettre dans l'état initial) => l'ensemble des tests unitaires passeront beaucoup plus lentement.
cordialement
loïc midy
Partager