node.js - test - ¿Por qué me aparece el mensaje "Error: El método de resolución está sobre especificado"?
node js mocha chai (2)
Después de la actualización, Mocha ni siquiera puede ejecutar una prueba simple aquí es el código
const assert = require(''assert'');
it(''should complete this test'', function (done) {
return new Promise(function (resolve) {
assert.ok(true);
resolve();
})
.then(done);
});
Tomé este código de here
Entendí que ahora se produce un Error: Resolution method is overspecified. Specify a callback * or * return a Promise; not both.
excepción Error: Resolution method is overspecified. Specify a callback * or * return a Promise; not both.
Error: Resolution method is overspecified. Specify a callback * or * return a Promise; not both.
¿Pero cómo hacer que funcione? No entendía. yo tengo
node -v 6.9.4
mocha -v 3.2.0
¿Cómo ejecutar este código ahora están en un formato nuevo y correcto?
Mocha permite utilizar una devolución de llamada:
it(''should complete this test'', function (done) {
new Promise(function (resolve) {
assert.ok(true);
resolve();
})
.then(done);
});
O devolver una promesa:
it(''should complete this test'', function () {
return new Promise(function (resolve) {
assert.ok(true);
resolve();
});
});
// Or in the async manner
it(''should complete this test'', async () => {
await Promise.resolve();
assert.ok(true);
});
No puedes hacer ambas cosas.
Solo deja caer
.then(done);
y reemplazar la function(done)
con la function()
Usted está devolviendo una Promesa, por lo que las llamadas realizadas son redundantes, como se indica en el mensaje de error
En las versiones anteriores tuvo que usar la devolución de llamada en caso de métodos asíncronos como ese
it (''returns async'', function(done) {
callAsync()
.then(function(result) {
assert.ok(result);
done();
});
})
Ahora tienes una alternativa de devolver una Promesa
it (''returns async'', function() {
return new Promise(function (resolve) {
callAsync()
.then(function(result) {
assert.ok(result);
resolve();
});
});
})
Pero usar ambos es engañoso (vea, por ejemplo, aquí https://github.com/mochajs/mocha/issues/2407 )