बर्ताव को उसी स्तर पर टेस्ट करें जिस पर यूज़र उसे महसूस करता है। ऐसे component tests जो component render करके दिखने वाले टेक्स्ट और roles से बात करते हैं, प्रति मेहनत सबसे ज़्यादा bugs पकड़ते हैं; formatting और reducers जैसी logic के लिए सादे unit tests ठीक हैं; signup और checkout जैसी अहम यात्राओं के लिए कुछ गिने चुने end to end tests। ऐसे tests से बचें जो implementation की बारीकियों पर दावा करते हैं, क्योंकि वे हर refactor पर टूटते हैं और असली regressions पकड़ते नहीं।
इंटरव्यूअर यह क्यों पूछते हैं
इंटरव्यूअर testing pyramid का पाठ नहीं, लागत और कीमत पर समझ देखना चाहता है। फ्रंटएंड tests अपनी नाज़ुकी के लिए मशहूर हैं, तो वे सुनते हैं कि आप markup के ढांचे से चिपकने से कैसे बचते हैं, network कॉल कैसे संभालते हैं, और snapshot tests पर आपकी कोई राय है या नहीं। इससे यह भी पता चलता है कि आप ऐसा suite छोड़कर जाएंगे जिस पर अगला व्यक्ति भरोसा करे।
अपना जवाब कैसे स्ट्रक्चर करें
- सिद्धांत बताएं: टेस्ट वह करें जो यूज़र करता है, यह नहीं कि चीज़ बनी कैसे है।
- हर तरह के कोड को एक तरह का test दें।
- network और समय को आप कैसे संभालते हैं, समझाएं।
- कोई ऐसी आदत बताएं जिससे आप बचते हैं और क्यों।
उदाहरण जवाब
मेरा नियम यह है कि test तब फेल हो जब बर्ताव टूटे और refactor में बचा रहे। तो मेरे ज़्यादातर tests component render करके उसे वैसे चलाते हैं जैसे यूज़र चलाता, elements को test ids या class names की जगह role और label से ढूंढते हुए, जिसका मतलब है component की एक्सेसिबिलिटी की भी कसरत हो जाती है। date formatter या reducer जैसी शुद्ध logic को सादे unit tests मिलते हैं, क्योंकि वे सस्ते और तेज़ हैं। फिर Playwright में एक छोटा end to end suite उन यात्राओं पर जो टूटने पर पैसे की चोट देती हैं: sign up, log in, checkout। network कॉल को fetch function mock करने की जगह सीमा पर mock server से पकड़ा जाता है, ताकि test मेरे असली request वाले कोड को भी कवर करे। मैं बड़े snapshot tests से बचता हूं, क्योंकि दो सौ लाइन के diff को कोई review नहीं करता और वे आंख मूंदकर स्वीकार हो जाते हैं, और अंदरूनी state पर दावा करने वाली किसी भी चीज़ से भी। दूसरी बात जिस पर मैं अड़ता हूं वह यह कि end to end tests किसी seeded एनवायरनमेंट पर चलें, क्योंकि साझा डेटा की चंचलता ही टीमों को लाल builds नज़रअंदाज़ करना सिखाती है।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- end to end tests को चंचल होने से कैसे रोकते हैं?
- जो component खुद अपना डेटा लाता है, उसे टेस्ट करने का आपका तरीका क्या है?
- आपके लिए visual regression tests कहां फिट होते हैं?
फ्रंटएंड डेवलपर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें