Tengo algo tan simple como esto.
`it (" debería llamar a la promesa ", async (done) => {
const testPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Hello World!");
}, 200);
});
const result = await testPromise;
done();
} `
Pero sigo recibiendo el error "Error: el método de resolución está sobreespecificado. Especifique una devolución de llamada o devuelva una Promesa; no ambos".
Si saco done (), la prueba se agota.
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "ES6",
"noImplicitAny": false,
"types": ["node", "mocha","supertest"],
"typeRoots": [
"./node_modules/@types"
]
}
}
mocha.opts
--require ts-node/register
--reporter dot
--watch-extensions tsx,ts
test/**/*.ts
Lovely encontró cómo solucionarlo eliminar hecho en el parámetro de función y en la parte inferior y funciona. Tan pronto como pones el parámetro hecho en función, se vuelve loco
Tenga en cuenta también que las funciones async
devuelven automáticamente una promesa.
parece tan largo como usted async
, y como dijo @ScottFreeCode , devuelve una promesa, por lo que simplemente omitimos llamar a done()
. obras.
¡Eliminar hecho funcionó para mí!
ANTES DE:
¡¡Después del trabajo!!):
Función getResponse:
Tuve que eliminar el done
del parámetro de la función y el done()
de la llamada a la función
Antes
before(async function (done) {
user = new User({ ...});
await user.save();
done()
});
Después
before(async function () {
user = new User({ ...});
await user.save();
});
Esto funciona para mi
Estoy teniendo el mismo problema, y necesito que el usuario termine, porque necesito probar que mi promesa falla. Entonces lo atrapo, y luego llamo listo, pero obtengo este error.
it("...", async function (done) {
try {
await asyncFung(...);
done("The call should have failed")
} catch (error) {
if (error instanceof MyError) {
done()
} else {
done(error)
}
}
});
Comentario más útil
Lovely encontró cómo solucionarlo eliminar hecho en el parámetro de función y en la parte inferior y funciona. Tan pronto como pones el parámetro hecho en función, se vuelve loco