Mocha: ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ошибки «Ошибка: ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слишком Π·Π°Π΄Π°Π½. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² * ΠΈΠ»ΠΈ * Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ ΠΎΠ±Π°Β».

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 15 ΠΌΠ°Ρ€. 2017  Β·  6ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: mochajs/mocha

Π£ мСня Π΅ΡΡ‚ΡŒ такая простая Π²Π΅Ρ‰ΡŒ.

`it (" Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅ ", async (done) => {

    const testPromise = new Promise((resolve, reject) => {

        setTimeout(() => {

            resolve("Hello World!");

        }, 200);
    });


    const result = await testPromise;

    done();

} `

Но я ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСниС ΠΎΠ± ошибкС: «Ошибка: ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слишком Π·Π°Π΄Π°Π½. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΈΠ»ΠΈ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, Π½ΠΎ Π½Π΅ Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅Β».

Если я Π²ΠΎΠ·ΡŒΠΌΡƒ done (), врСмя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ истСчСт.

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

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎ нашСл, ΠΊΠ°ΠΊ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ сдСлано Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²Π½ΠΈΠ·Ρƒ, ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ done Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠ½ ΠΈΠ΄Π΅Ρ‚ напСрСкосяк

ВсС 6 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€Π΅ΠΊΡ€Π°ΡΠ½ΠΎ нашСл, ΠΊΠ°ΠΊ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ сдСлано Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²Π½ΠΈΠ·Ρƒ, ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ done Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠ½ ΠΈΠ΄Π΅Ρ‚ напСрСкосяк

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ async Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ автоматичСски Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅.

каТСтся, ΠΏΠΎΠΊΠ° Π²Ρ‹ async , ΠΈ, ΠΊΠ°ΠΊ сказал @ScottFreeCode , ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅, поэтому ΠΌΡ‹ просто пропускаСм Π²Ρ‹Π·ΠΎΠ² done() . Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ сработало для мСня!

Π”Πž:

image

ΠŸΠžΠ‘Π›Π• (Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ !!):

image

Ѐункция getResponse:

image

МнС ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ done ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ done() Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
Π”ΠΎ

   before(async function (done) {
        user = new User({ ...});
        await user.save();
        done()
    });

ПослС

   before(async function () {
        user = new User({ ...});
        await user.save();
    });

Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для мСня

Π£ мСня Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сдСлал, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΅ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΈΠ΅ Π½Π΅ выполняСтся. Π˜Ρ‚Π°ΠΊ, я ловлю это, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽ "Π“ΠΎΡ‚ΠΎΠ²ΠΎ", Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ.

it("...", async function (done) {
  try {
    await asyncFung(...);
    done("The call should have failed")
  } catch (error) {
    if (error instanceof MyError) {
      done()
    } else {
      done(error)
    }
  }
});
Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ