Bonjour,
J'aimerais mettre en place de la programmation par contrat : ajouter des pr� et post conditions � une fonction.
J'aimerais pouvoir faire �a:
Voici ce que j'arrive � faire pour l'instant:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /* declaration de la fonction toto */ function toto(i) { var a = 5/i; return a; } toto.preCondition = function(i) { assert(i!=0, "i must not be null"); } toto.postCondition = function(i, rv) { // rv is the returned value assert(rv==(5/i)); } /* utilisation */ toto(1); // => la pré et post condition sont appelées automatiquement et testent si les assertions sont vraies
L� o� je bloque c'est pour garder ce fonctionnement sans passer par l'appel toto.contract() mais directement par toto().
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Function.prototype.contract = function() { this.preCondition(arguments); this.call(arguments); this.postCondition(arguments); }; var toto = function() { console.log('toto'); } toto.preCondition = function() { console.log('pre'); } toto.postCondition = function() { console.log('post'); } toto.contract(); // => affiche: // pre // toto // post
Quelqu'un aurait une id�e ?
Merci d'avance
PS: Merci de m'indiquer si ce n'est pas clair.






R�pondre avec citation




Partager