का उपयोग करके एकाधिक तह के साथ परीक्षण वादे का परीक्षण मैं अपने node.js प्रोजेक्ट में कॉल को रोकने के लिए testdouble
का उपयोग कर रहा हूं। यह विशेष कार्य एक वादा लपेट रहा है और इसमें फ़ंक्शन के भीतर कई then
कॉल हैं।testdoublejs
function getUser (rethink, username) {
return new Promise((resolve, reject) => {
let r = database.connect();
r.then(conn => database.table(tablename).filter({username}))
.then(data => resolve(data))
.error(err => reject(err));
});
}
तो मैं अगर resolve
और reject
सही ढंग से त्रुटि की स्थिति के आधार पर नियंत्रित किया जाता है निर्धारित करने के लिए इच्छुक हूँ। मान लें कि वहां कुछ कस्टम तर्क हैं जिन्हें मुझे सत्यापित करने की आवश्यकता है।
अपने परीक्षण
import getUser from './user';
import td from 'testdouble';
test(t => {
const db = td.object();
const connect = td.function();
td.when(connect('options')).thenResolve();
const result = getUser(db, 'testuser');
t.verify(result);
}
मुद्दे के लिए कि कनेक्ट का परिणाम एक वादा करने की आवश्यकता है, इसलिए मैं तो का उपयोग जो एक और वादा है कि निराकरण या खारिज कर दिया की जरूरत है एक मूल्य के साथ हल।
यह लाइन database.connect()
का परिणाम है एक वादा नहीं है।
TypeError: Cannot read property 'then' of undefined
किसी को भी इस प्रकार के कॉल को टेस्ट डबल के साथ दबाकर सफलता मिली है?
क्या आप जो त्रुटि प्राप्त करते हैं उसे प्रदान कर सकते हैं? –
@ ckross01 मन हमें त्रुटि और/या एक स्टैकट्रस दिखा रहा है? – GPX
मैंने अनिवार्य रूप से इस सवाल में त्रुटि को जोड़ा कि यह 'डेटाबेस.कनेक्ट' का नतीजा बता रहा है, यह वादा नहीं है। – ckross01