玩笑嘲諷真是困惑我現在。玩笑嘲諷 - 簡單的模擬
我有下面的代碼在我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