玩笑嘲讽真是困惑我现在。玩笑嘲讽 - 简单的模拟
我有下面的代码在我notifications.js模块:
// Dispatch notifications to MQTT end point
function dispatcher(shipment) {
mqttclient.publish('notification', JSON.stringify(shipment));
return console.info('Notification dispatched.');
}
我导出此所以它适用于我的测试:
module.exports = { notificationProcessor, notificationDispatch, dispatcher };
我想改变这个函数的实现在我的测试过程中,这样mqqtclient.publish事件不会触发。
我试图模拟整个mqtt npm模块,它也是该文件的一部分,但它变得非常复杂,所以我从主代码中分离出调度器功能,所以我可以完全专注于此。如果通知被确定
调度员从notificationProcessor调用。在我的测试文件中,我只是给notificationProcessor提供一个解析后发送给调度员的电子邮件。
怎样去嘲弄这个简单的功能的实现?
发布一个答案,但想必你想这样做,因为你不希望mqttclient发布的通知。在这种情况下,为什么不使用mqttclient.publish呢? –
正是。我试图嘲笑这个.publish,但现在有点超出了我的知识宝库。我以香草形式使用npm mqtt。我可以嘲笑.connect但后来这个被分配到mqttclient这反过来又返回与原型MqttClient功能.publish – munkee
我觉得这个页面说明了什么,我需要做的https://facebook.github.io/jest/docs/manual- mocks.html我想我已经错过了将模拟放在mqtt node_modules文件夹旁边的使用方法 – munkee