Skip to content

refactor(test): テストのリファクタリング - #2

Draft
takejohn wants to merge 6 commits into
masterfrom
refactor/tests
Draft

refactor(test): テストのリファクタリング#2
takejohn wants to merge 6 commits into
masterfrom
refactor/tests

Conversation

@takejohn

Copy link
Copy Markdown
Owner

What

  • Vitestのexpect.extend()を用いて、expect()が返すAssertiontoEqualValueOfメソッドを追加します(実装: test/setup/index.ts, 型定義: vitest.d.ts)。このメソッドはAiScriptの値が等しいことを確認するためにeq()関数の代わりに用います。
  • test/testutils.tseq()関数を削除します。
  • テストファイルに含まれるeq(actual, expected)を、expect(actual).toEqualValueOf(expected)に置き換えます。
  • test/syntax.tsmetaテストスイートに含まれるeq(actual, expected)の呼び出しは、引数がAiScriptの値ではないため、expect(actual).toStrictEqual(expected)に置き換えます。eq関数はtypevalueプロパティのみ比較を行うため、以前は正しく比較を行えていませんでした。
  • tsconfig.jsonにテストファイルを含め、エディタにおいてテストファイルの型チェックが働くようにします。ビルド時(npm scriptsのts-esmts-dts)にはtsconfig.build.jsonを使用します。

Why

  • eq()関数を一つのassertionに置き換えることで、assertionのカウントを正確に把握できるようにし、expect.hasAssertions()などを扱いやすくします。
  • 型とテスト時のチェックにより、test/syntax.tsmetaテストスイートのような誤りを防ぎます。

Additional info (optional)

(変更が若干大きすぎたので後で分けてPRを出すためのメモ)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant