Solucio ambits amb test unitaris

De wikiserver
Dreceres ràpides: navegació, cerca

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