Mocha: الحصول على الخطأ "خطأ: أسلوب الحل محدد بشكل زائد. حدد رد اتصال * أو * قم بإرجاع وعد ، وليس كليهما."

تم إنشاؤها على ١٥ مارس ٢٠١٧  ·  6تعليقات  ·  مصدر: mochajs/mocha

لدي شيء بسيط مثل هذا.

`it (" should call trust "، async (done) => {

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

        setTimeout(() => {

            resolve("Hello World!");

        }, 200);
    });


    const result = await testPromise;

    done();

} `

ولكن ما زلت أتلقى الخطأ "خطأ: طريقة الحل مفرطة التحديد. حدد رد اتصال أو أرجع وعدًا ؛ وليس كليهما.".

إذا أخرجت () ، فستنتهي مهلة الاختبار.

tsconfig.json
{ "compilerOptions": { "module": "commonjs", "target": "ES6", "noImplicitAny": false, "types": ["node", "mocha","supertest"], "typeRoots": [ "./node_modules/@types" ] } }
موكا
--require ts-node/register --reporter dot --watch-extensions tsx,ts test/**/*.ts

faq

التعليق الأكثر فائدة

وجد جميل كيفية إصلاحه ، وإزالته في معلمة الوظيفة وفي الأسفل ويعمل. بمجرد أن تضع المهمة في معلمة الوظيفة ، فإنها تصبح سالكة

ال 6 كومينتر

وجد جميل كيفية إصلاحه ، وإزالته في معلمة الوظيفة وفي الأسفل ويعمل. بمجرد أن تضع المهمة في معلمة الوظيفة ، فإنها تصبح سالكة

ضع في اعتبارك أيضًا أن وظائف 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 التقييمات