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; }