AzureFunctionsのTypeScript関数のテストでcontextオブジェクトをモックしたい
はじめに
株式会社センシンロボティクスの @s-okamura です。社内では主にフロントエンド/バックエンド実装およびインフラ構築を担当しています。今回はAzureFunctionsのTypeScript関数のユニットテストを作成する場合に、contextをモックする方法を紹介します。
概要
AzureFunctionsのトリガー関数は第1引数として context
オブジェクトが渡され、バインディングデータの受け渡しやログ出力、レスポンスなどに使用されます。jestのユニットテストを作成する際、この context
オブジェクトをモックしたいケースがあり、その方法を調査しました。
関数例
何か処理をして正常終了するような、非常にシンプルなQueueトリガーな関数の例です。
import {AzureFunction, Context} from '@azure/functions';
const queueTrigger: AzureFunction = async function (context: Context, queueMessage: string): Promise<void> {
// do something
context.res = {
status: 200
}
};
export default queueTrigger;
方法
こちらの jest-mock-extended を利用します。ドキュメントに従いインストールすると、const context = mock<Context>()
とすることでcontextオブジェクトをモックすることができます。
import {mock} from 'jest-mock-extended';
import {Context} from '@azure/functions';
import queueTrigger from 'index';
test('context.res.statusが200であること', async () => {
// Contextオブジェクトをモックする
const context = mock<Context>();
await queueTrigger(context, 'test-message');
expect(context.res.status).toEqual(200);
});
Author And Source
この問題について(AzureFunctionsのTypeScript関数のテストでcontextオブジェクトをモックしたい), 我々は、より多くの情報をここで見つけました https://qiita.com/s-okamura/items/e57f18ed3984a1e8c622著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .