Mocha: 였λ₯˜ λ°œμƒ "였λ₯˜: ν•΄κ²° 방법이 κ³Όλ„ν•˜κ²Œ μ§€μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ½œλ°±μ„ μ§€μ •ν•˜κ±°λ‚˜ *λ˜λŠ”* 약속을 λ°˜ν™˜ν•©λ‹ˆλ‹€. λ‘˜ λ‹€ μ•„λ‹˜."

에 λ§Œλ“  2017λ…„ 03μ›” 15일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: mochajs/mocha

λ‚˜λŠ” 이것과 같은 κ°„λ‹¨ν•œ 것이 μžˆμŠ΅λ‹ˆλ‹€.

` it("약속을 ν˜ΈμΆœν•΄μ•Ό 함", async(μ™„λ£Œ) => {

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

이것은 λ‚˜λ₯Ό μœ„ν•΄ μž‘λ™ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 같은 문제λ₯Ό κ²ͺκ³  있으며 λ‚΄ 약속이 μ‹€νŒ¨ν•˜λŠ”μ§€ ν…ŒμŠ€νŠΈν•΄μ•Όν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μžκ°€ μ™„λ£Œν•΄μ•Όν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ 그것을 μž‘μ•„μ„œ done을 ν˜ΈμΆœν–ˆμ§€λ§Œ 이 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

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 λ“±κΈ‰