TypeScript
testing
sinon
fakeTime

TypescriptでDate()をテスト用に設定する

Unit Testを書く際、時刻をテスト用に設定するにはPythonならFreezeGunなどのツールがあります。今回、Ionicのテストを書いていてTypeScriptならどうするのか調べてみました。


部品

Javascript用のSinon.jsというライブラリが良さげです。TypeScriptには@types/sinonというラッパーがあります。


インストール

npm install --save-dev sinon @types/sinon


使い方

割と直球勝負です。単純に時刻を固定化するのならこんな感じ。

import { useFakeTimers } from 'sinon';

let clock = useFakeTimers(new Date(2018, 12, 5, 20, 20, 20).getTime());

// これで時計は2018年12月5日20時20分20秒になります

clock.restore(); // 終わったら必ず解放