/ / मज़ाक फ़ंक्शन मॉड्यूल जेस्ट और एंजाइम के साथ - रिएक्टज, मॉकिंग, जेस्टज, एंजाइम

जेस्ट और एंजाइम के साथ मॉक फ़ंक्शन मॉड्यूल - रिस्पॉज, मॉकिंग, जेस्टजेस, एंजाइम

मेरे पास एक प्रतिक्रिया घटक है जो किसी अन्य मॉड्यूल से एक विधि कहता है।
मॉड्यूल सिर्फ 1 विधि लौटाता है:

export default (url, method, authorization, body) => {
const headers = { "Content-Type": "application/json" }
if (authorization) headers.Authorization = localStorage.getItem("id_token");
return fetch(url, {
method,
headers,
body: JSON.stringify(body)
}).then(res => res.json());
}

मैं "इस पद्धति / मॉड्यूल का मज़ाक उड़ाना पसंद करता हूं, इसलिए इसका उपयोग करने वाले अवयवों का परीक्षण करते समय वास्तविक कोड doesn" t कहा जाता है।
मैं रिएक्ट / जेस्ट / एंजाइम में एक नौसिखिया हूँ इसलिए मुझे कुछ आसान याद आ रहा है।

मेरी परीक्षण फ़ाइल में:

jest.mock("../../utils/fetch.js", () => () => {
Promise.resolve({_id: 1});
});
import fetch from "../../utils/fetch";

जहां विधि का उपयोग किया जाता है:

return fetch("/api/items", "post", true, newItem).then(res => {
this.props.history.push(`/items/${res._id}`);
}).catch(console.log);

उत्तर:

उत्तर № 1 के लिए 1

तो आपके पास एक मॉड्यूल है जो एक फ़ंक्शन देता है जो एक वादा वापस करेगा। यदि आप केवल खुश रास्ते का परीक्षण करना चाहते हैं तो अपने नकली से हल किए गए वादे को वापस करें:

jest.mock("./my-function.js", () => () => Promise.resolve("foo"));

यदि आपको अपने परीक्षण के दौरान फ़ंक्शन का परिणाम सेट करने की आवश्यकता है, तो जासूस के साथ मॉड्यूल का मज़ाक उड़ाएं और बाद में अपने परीक्षण में परिणाम सेट करें:

jest.mock("./my-function.js", () => jest.fn());
import myFunction from "./my-function.js"
describe("foo",()=>{
it("the happy pass",()=> {
myFunction.mockImplementation(() => Promise.resolve("foo"))
//your assertion here
})

it("when it fails",()=> {
myFunction.mockImplementation(() => Promise.reject())
//your assertion here
})
})
})

ध्यान दें कि आपको इसके शीर्ष पर मज़ाक करना होगामॉड्यूल। अन्यथा आपके पास मूल आयातित होगा और बाद में मॉड्यूल को मॉक के साथ बदल देगा, जिससे आयातित पर कोई प्रभाव नहीं पड़ेगा। एक आयात को हल करने के तरीके के बारे में मज़ाक कहने के तरीके के रूप में मजाक करने के बारे में सोचें। इसलिए आयात करने के बाद किसी चीज का मजाक उड़ाने से कोई प्रभाव नहीं पड़ेगा।