का उपयोग करके es6 कक्षा का नकल कैसे करें I jest का उपयोग करके Mailer
कक्षा का नकल करने का प्रयास कर रहा हूं और मैं यह नहीं समझ सकता कि इसे कैसे किया जाए। दस्तावेज़ यह कैसे काम करता है के कई उदाहरण नहीं देते हैं। प्रक्रिया यह है कि मेरे पास एक नोड इवेंट password-reset
होगा जिसे निकाल दिया गया है और जब उस ईवेंट को निकाल दिया जाता है, तो मैं Mailer.send(to, subject, body)
का उपयोग करके एक ईमेल भेजना चाहता हूं।जेस्ट
project_root
-- __test__
---- server
------ services
-------- emails
---------- mailer.test.js
-- server
---- services
------ emails
-------- mailer.js
-------- __mocks__
---------- mailer.js
यहाँ मेरी नकली फ़ाइल __mocks__/mailer.js
है: यहाँ मेरी निर्देशिका संरचना है
const Mailer = jest.genMockFromModule('Mailer');
function send(to, subject, body) {
return { to, subject, body };
}
module.exports = Mailer;
और मेरे mailer.test.js
const EventEmitter = require('events');
const Mailer = jest.mock('../../../../server/services/emails/mailer');
test('sends an email when the password-reset event is fired',() => {
const send = Mailer.send();
const event = new EventEmitter();
event.emit('password-reset');
expect(send).toHaveBeenCalled();
});
और अंत में मेरी mailer.js
वर्ग:
class Mailer {
constructor() {
this.mailgun = require('mailgun-js')({
apiKey: process.env.MAILGUN_API_KEY,
domain: process.env.MAILGUN_DOMAIN,
});
}
send(to, subject, body) {
return new Promise((reject, resolve) => {
this.mailgun.messages().send({
from: 'Securely App <[email protected]>',
to,
subject: subject,
html: body,
}, (error, body) => {
if (error) {
return reject(error);
}
return resolve('The email was sent successfully!');
});
});
}
}
module.exports = new Mailer();
तो, जेस्ट का उपयोग करके, मैं इस कक्षा का सफलतापूर्वक नकल और परीक्षण कैसे करूं? मदद के लिए बहुत धन्यवाद!
मैं घर पाने और इसे आजमाने की प्रतीक्षा नहीं कर सकता। सुपर-महान स्पष्टीकरण के लिए बहुत बहुत धन्यवाद। – dericcain