Solucio ambits amb test unitaris
De wikiserver
Fitxer que comprova els àmbits de totes les variables i funcions en llocs estratègics del codi:
<!DOCTYPE html> <html> <head> <title>Ambits amb test unitaris</title> <meta charset="utf-8"> <script type="text/javascript" src="assert.js"></script> <link href="assert.css" rel="stylesheet" type="text/css"> </head> <body> <script type="text/javascript"> assert(true,"|----- abans externa -----|"); //#1 assert(typeof externa==='function', "externa() esta en l'ambit"); assert(typeof interna==='function', "interna() esta en l'ambit"); assert(typeof a==='number', "a esta en l'ambit"); assert(typeof b==='number', "b esta en l'ambit"); assert(typeof c==='number', "c esta en l'ambit"); function externa(){ assert(true,"|----- dintre externa, abans a -----|"); //#2 assert(typeof externa==='function', "externa() esta en l'ambit"); assert(typeof interna==='function', "interna() esta en l'ambit"); assert(typeof a==='number', "a esta en l'ambit"); assert(typeof b==='number', "b esta en l'ambit"); assert(typeof c==='number', "c esta en l'ambit"); var a = 1; assert(true,"|----- dintre externa, despres a -----|"); //#3 assert(typeof externa==='function', "externa() esta en l'ambit"); assert(typeof interna==='function', "interna() esta en l'ambit"); assert(typeof a==='number', "a esta en l'ambit"); assert(typeof b==='number', "b esta en l'ambit"); assert(typeof c==='number', "c esta en l'ambit"); function interna(){ /* does nothing */ } var b = 2; assert(true,"|----- dintre externa, despres interna() i b -----|"); //#4 assert(typeof externa==='function', "externa() esta en l'ambit"); assert(typeof interna==='function', "interna() esta en l'ambit"); assert(typeof a==='number', "a esta en l'ambit"); assert(typeof b==='number', "b esta en l'ambit"); assert(typeof c==='number', "c esta en l'ambit"); if (a == 1) { var c = 3; assert(true,"|----- dintre externa, dintre if -----|"); //#5 assert(typeof externa==='function', "externa() esta en l'ambit"); assert(typeof interna==='function', "interna() esta en l'ambit"); assert(typeof a==='number', "a esta en l'ambit"); assert(typeof b==='number', "b esta en l'ambit"); assert(typeof c==='number', "c esta en l'ambit"); } assert(true,"|----- dintre externa, despres c -----|"); //#6 assert(typeof externa==='function', "externa() esta en l'ambit"); assert(typeof interna==='function', "interna() esta en l'ambit"); assert(typeof a==='number', "a esta en l'ambit"); assert(typeof b==='number', "b esta en l'ambit"); assert(typeof c==='number', "c esta en l'ambit"); } externa(); assert(true,"|----- despres externa -----|"); //#7 assert(typeof externa==='function', "externa() esta en l'ambit"); assert(typeof interna==='function', "interna() esta en l'ambit"); assert(typeof a==='number', "a esta en l'ambit"); assert(typeof b==='number', "b esta en l'ambit"); assert(typeof c==='number', "c esta en l'ambit"); </script> </body> </html>
Codi pel css:
ul#results { border: 2px ridge maroon; background-color: #ffffcc; padding: 0.25em 1.5em; margin-left: 0; } li.pass { color: #006400; } li.fail { color: #dc143c; text-decoration: line-through; }