5

私は TypeScript を初めて使用し、TypeScript コード ベースの単体テストをセットアップしようとしています。問題は、私のコードが他の人の作業に依存していて、これらすべての参照が「......\somefile.d.ts」のようなハードコードされた相対パスの形式で行われていることです。単体テストになると、いくつかの依存関係を偽造したいのですが、ハードコーディングされた参照ファイルの代わりに TypeScript に偽物を取得させる方法がわかりません。

私の質問は: ソース コードで参照パスをハードコーディングしない方法はありますか? TypeScript にはプリプロセッサやマクロのようなものがありますか、それともソース コードでハードコーディングするのではなく、プロジェクト システムを使用して依存関係を解決することができますか?

4

2 に答える 2

3

別のファイルをロードする代わりに、テストまたはスパイ フレームワークを使用してテスト実装の実装を交換することを検討しましたか?

TypeScript プロジェクトでは、ジャスミン スパイ ( https://github.com/pivotal/jasmine/wiki/Spieshttp://tobyho.com/2011/12/15/jasmine-spy-cheatsheet/ ) を使用して、依存関係を偽装しました。 . 通常どおりメイン ソース コードをロードし、createSpyObj 関数と spyOn 関数を使用して、依存関係をテスト ファイルで定義された新しい TypeScript に置き換えました。

このアプローチを使用すると、メイン ソース コードやインクルード パスを変更する必要はありません。すべてテスト ファイルで行われます。

于 2013-10-29T11:39:49.057 に答える