Estoy creando una biblioteca de JavaScript y quiero usar BDD, así que estoy probando en mocha y no puedo hacer que funcione. Quiero que esa biblioteca se use en el cliente, por lo que supongo que tiene sentido que se ejecute desde una url navegable, para estar en un contexto de conexión web, y no solo un entorno limitado desde una ruta unc.¿por qué mocha en el navegador arroja una fuga global detectada desde una url pero no desde una ruta unc?
aquí es la prueba de archivo de punto de partida maniquí/test.foobar.js
var assert = chai.assert;
var foobar = {
sayHello: function() {
return 'Hello World!';
}
};
describe('Foobar', function() {
describe('#sayHello()', function() {
it('should work with assert', function() {
assert.equal(foobar.sayHello(), 'Hello World!');
});
});
});
y aquí está la página HTML que desencadenan la prueba, test.html
<html>
<head>
<meta charset="utf-8">
<title>Mocha Tests</title>
<link rel="stylesheet" href="testing/mocha.css" />
<script src="testing/jquery.js"></script>
<script src="testing/mocha.js"></script>
<script>mocha.setup('bdd')</script>
<script src="testing/chai.js"></script>
<script src="test/test.foobar.js"></script>
<script> $(function() { mocha.run(); }) </script>
</head>
<body>
<div id="mocha"></div>
</body>
</html>
cuando abra en Chrome o Safari
file:///Users/me/dev/sandbox/test.html
funciona como se espera, la prueba pasan sin error
cuando abro en Chrome o Safari
http://localhost/sandbox/test.html
me sale el siguiente error y la prueba fallará
Error: global leak detected: script1339700707078
at Runner.checkGlobals (http://localhost/sandbox/testing/mocha.js:3139:21)
at Runner.<anonymous> (http://localhost/sandbox/testing/mocha.js:3054:44)
at Runner.emit (http://localhost/sandbox/testing/mocha.js:235:20)
at http://localhost/sandbox/testing/mocha.js:3360:14
at Test.run (http://localhost/sandbox/testing/mocha.js:3003:5)
at Runner.runTest (http://localhost/sandbox/testing/mocha.js:3305:10)
at http://localhost/sandbox/testing/mocha.js:3349:12
at next (http://localhost/sandbox/testing/mocha.js:3233:14)
at http://localhost/sandbox/testing/mocha.js:3242:7
at next (http://localhost/sandbox/testing/mocha.js:3192:23)
alguien puede tener una explicación y una solución mejor?
si se añade lo siguiente en una etiqueta de script sobre el proceso de carga uno, debe fijarlo en cromo (globales útiles, en general, demasiado): mocha.setup ({ui: '' bdd, variables globales : ['script *']}) –