この記事はTypeScript Advent Calendar 2019 の 16日目の記事です。 「Mapped types」,「Conditional Types」などTypeScriptの型システムは高機能です。 しかし、高機能がゆえに複雑で直感的には分かりくい型を生み出していることも事実です。 TypeScriptの型定義は型を返す関数として扱うことができ、型がバグを生み出す原因にもなります。 そんな型でのバグをなくすために型のユニットテストを紹介します。
この記事はTypeScript Advent Calendar 2019 の 16日目の記事です。 「Mapped types」,「Conditional Types」などTypeScriptの型システムは高機能です。 しかし、高機能がゆえに複雑で直感的には分かりくい型を生み出していることも事実です。 TypeScriptの型定義は型を返す関数として扱うことができ、型がバグを生み出す原因にもなります。 そんな型でのバグをなくすために型のユニットテストを紹介します。
Warning: This is experimental work. Read the comments for more information on its limitations. In this blog post, we’ll examine how we can test static types in TypeScript (inferred types, etc.). For example, given the following function: function createPoint(x: number, y: number) { return {x, y}; } We’d like to check in a unit test that TypeScript infers this return type: {x: number, y: number} In
メモ。 TypeScript を使ったプロジェクトに Jest を導入する時に必要なパッケージや設定、とくに ts-jest と @types/jest が必ず必要なのかどうかがよくわかってなかったので調べた。 先にまとめ TypeScript -> JavaScript のコンパイルを TypeScript 自身でやるか Babel に任せるかで必要な設定が異なる。 (Babel 7 から TypeScript がサポートされた) @types/jest は(テストファイルも型チェックするなら)両方で必要 TypeScript のコンパイルに Babel を使う場合、@preset/typescript と babel-jest をインストールしておけば ts-jest は不要 TypeScript のコンパイルに TypeScript を使う場合、 ts-jest が必要。jest.c
スパイ、スタブ、モック、フェイク、ダミー、それぞれの役割って言えますか? 私はつい最近まで言えませんでした。 だいぶ前に Sinon.JS というパッケージがある事を知ったのですが最近改めてドキュメントを読んだところ、これらを学ぶのにとても適している事に気づきました。Sinon.JS ではスパイやスタブなどが spy stub など独立したオブジェクトとして存在していて、それぞれのメソッド名も returns() notCalled() withArgs() など役割をそのまま表現した名前になっています。 APIリファレンスを眺めていたら spy.returns() メソッドは存在しない事に気づいてしまいました。 今まで何でもかんでも spyXX のように変数名を付けて、コール回数やら引数の検証やら戻り値の変更やら、ひとつのオブジェクトで全てを検証しようと詰め込んでいましたが、これは間違い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く