Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9130

【Jest】名前付きインポートしたクラスとそのメソッドをそれぞれモック化する

$
0
0
例として@slack/webhookパッケージを使ってslackにメッセージを送るコードをテストする。 // IncomingWebhookクラスを名前付きインポートして import { IncomingWebhook } from '@slack/webhook'; const webHookUrl = 'https://hooks.slack.com/services/~' // 1. IncomingWebhookをインスタンス化して const webhook = new IncomingWebhook(webHookUrl); // 2. sendメソッドで通知を送る webhook.send({ text: 'メッセージ内容', }); 1,2をテストするために、名前付きインポートしたクラスとsendメソッドをそれぞれモック化する。 import { IncomingWebhook } from '@slack/webhook'; const mockSend = jest.fn(); jest.mock('@slack/webhook', () => ({ IncomingWebhook: jest.fn(() => ({ send: mockSend })), })); 下のようなマッチャでテストできる。 // IncomingWebhookが1回インスタンス化された expect(IncomingWebhook).toHaveBeenCalledTimes(1); // sendメソッドが1回実行された expect(mockSend).toHaveBeenCalledTimes(1); メソッドだけでいいなら sendメソッドだけモック化するなら下のようにも書ける import { IncomingWebhook } from '@slack/webhook'; const mockSend = jest .spyOn(IncomingWebhook.prototype, 'send') .mockImplementation();

Viewing all articles
Browse latest Browse all 9130

Latest Images

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

Trending Articles



Latest Images

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭

赤坂中華 わんたん亭