OCamlモジュールのテストを書いています。モジュールの一部の機能は公開されていないため、署名(.mliファイル)には含まれていません。OCaml - 署名に含まれていないテスト関数
これらの関数は、モジュールの外部には表示されないため、私のテストから呼び出すことはできません。だから私はそれらをテストするのに苦労している。これを回避する良い方法はありますか?たとえば、ocamlc
が.mliファイルから署名を読み取ってテストをコンパイルしていないと伝える方法はありますか?
OCamlモジュールのテストを書いています。モジュールの一部の機能は公開されていないため、署名(.mliファイル)には含まれていません。OCaml - 署名に含まれていないテスト関数
これらの関数は、モジュールの外部には表示されないため、私のテストから呼び出すことはできません。だから私はそれらをテストするのに苦労している。これを回避する良い方法はありますか?たとえば、ocamlc
が.mliファイルから署名を読み取ってテストをコンパイルしていないと伝える方法はありますか?
いくつかのアイデア:
私は、人が.mliファイルを(別のディレクトリにある).mlファイルから分離することがあると聞いたことがあります。これは、ocamlcに別のディレクトリを探すかどうかを指示することでコンパイルすることができます。私はちょうどこれでいくつかの実験を試みた。私はそれを働かせることができると思うが、それは私に多少の誤りを起こしやすいようだ。おそらく、内部関数のテストをモジュールに入れることができます。テスト関数をエクスポートすることは、モジュール性に悪影響を与えることはありません。 (もちろんけれども、それクラッタアップモジュールを。)
.mliファイルを別のディレクトリに配置しようとしました。これはうまくいくと思われますが、最後には、停止コメント(**/**)を使用するというAshishの提案に行くつもりだと思っています。 +1、良い提案。 – declan
今のところ私はあなたの最初の提案をしています。最も簡単な解決策のようです。 – declan