Jest Mockingは本当に今私を混乱させる。Jest Mocking - シンプルモック
私は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モジュール全体をモックしようとしましたが、かなり複雑になってしまいました。メインコードからディスパッチャ関数を分割して、純粋にそれに集中することができました。
通知が識別された場合、dispatcherはnotificationProcessorから呼び出されます。私のテストファイルでは、単にNotificationProcessorに電子メールを送ります。この電子メールは解析され、ディスパッチャに発行されます。
この単純な関数の実装を嘲笑する方法を教えてください。
が回答を投稿しましたが、おそらくmqttclientに通知を発行させたくないため、これを実行したいと考えています。その場合は、代わりにmqttclient.publishをモックしないのはなぜですか? –
正確にイェップしてください。私は.publishを模倣しようとしましたが、それは今私の知識を少し超えていました。私はバニラフォーマットのnpm mqttを使用しています。私は接続を偽ることができますが、これはmqttclientに割り当てられ、プロトタイプの.publishを持つMqttClient関数を返します – munkee
私はこのページで私が何をする必要があるのかを説明していると思いますhttps://facebook.github.io/jest/docs/manual- mocks.html私はmqtt node_modulesフォルダの横にモックを置くのに慣れていないと思います。 – munkee