javascript - जेस्ट में फेंके गए अपवाद के प्रकार का परीक्षण कैसे करें




unit-testing jestjs (5)

जेस्ट में आपको एक फ़ंक्शन को अपेक्षा (फ़ंक्शन) .toThrow (त्रुटि का रिक्त या प्रकार) पास करना होगा।

उदाहरण:

test("Test description", () => {
  const t = () => {
    throw new TypeError();
  };
  expect(t).toThrow(TypeError);
});

यदि आपको किसी मौजूदा फ़ंक्शन का परीक्षण करने की आवश्यकता है, चाहे वह तर्कों के एक सेट के साथ फेंकता है, तो आपको इसे एक अनाम फ़ंक्शन के अंदर अपेक्षा में लपेटना होगा ()।

उदाहरण:

test("Test description", () => {
  expect(() => {http.get(yourUrl, yourCallbackFn)}).toThrow(TypeError);
});

मैं कुछ कोड के साथ काम कर रहा हूं, जहां मुझे फ़ंक्शन द्वारा फेंके गए अपवाद के प्रकार का परीक्षण करने की आवश्यकता है (क्या यह टाइप-इयरर, रेफरेंस इत्यादि है)।

मेरा वर्तमान परीक्षण ढांचा AVA है और मैं इसे दूसरे तर्क t.throws विधि के रूप में परख सकता हूं, जैसे:

it('should throw Error with message \'UNKNOWN ERROR\' when no params were passed', (t) => {
  const error = t.throws(() => {
    throwError();
  }, TypeError);

  t.is(error.message, 'UNKNOWN ERROR');
});

मैंने जेस्ट को अपने परीक्षण फिर से लिखना शुरू कर दिया और आसानी से ऐसा करने का तरीका नहीं खोज सका। क्या यह भी संभव है?


जेस्ट में एक विधि है जो परीक्षण करने के लिए toThrow(error)

तो, आपके मामले में आपको इसे कॉल करना चाहिए:

expect(t).toThrowError(TypeError);

toThrow


प्रयत्न
expect(t).rejects.toThrow()


मैं थोड़ा अधिक संक्षिप्त संस्करण का उपयोग करता हूं:

expect(() => {
  //code block that should throw error
}).toThrow(TypeError) //or .toThrow('expectedErrorMessage')

यह खुद करने की कोशिश नहीं की है, लेकिन मैं जेस्ट के toThrow का उपयोग करने का सुझाव toThrow । इसलिए मुझे लगता है कि आपका उदाहरण कुछ इस तरह दिखाई देगा:

it('should throw Error with message \'UNKNOWN ERROR\' when no params were passed', (t) => {
  const error = t.throws(() => {
    throwError();
  }, TypeError);

  expect(t).toThrowError('UNKNOWN ERROR');
  //or
  expect(t).toThrowError(TypeError);
});

फिर से, यह परीक्षण नहीं किया है, लेकिन मुझे लगता है कि यह काम करना चाहिए।

मुझे पता है अगर यह मदद की।

हैप्पी कोडिंग!






jestjs