我正在爲OCaml模塊編寫測試。模塊中的一些功能並不是公開可見的,所以它們不包含在簽名(.mli文件)中。OCaml - 簽名中未包含測試功能
我無法從我的測試中調用這些函數,因爲它們在模塊外部不可見。所以我很難測試它們。有沒有一種好方法來解決這個問題?例如,告訴ocamlc
在編譯測試時不要從.mli文件讀取簽名?
我正在爲OCaml模塊編寫測試。模塊中的一些功能並不是公開可見的,所以它們不包含在簽名(.mli文件)中。OCaml - 簽名中未包含測試功能
我無法從我的測試中調用這些函數,因爲它們在模塊外部不可見。所以我很難測試它們。有沒有一種好方法來解決這個問題?例如,告訴ocamlc
在編譯測試時不要從.mli文件讀取簽名?
一些想法:
我聽說人們有時會將他們的.mli文件與他們的.ml文件(在不同的目錄中)分開,以便他們可以編譯或不編譯它們(通過告訴ocamlc查看單獨的目錄)。我只是嘗試了一些實驗。我認爲它可以工作,但似乎有點容易出錯。也許你可以把內部函數的測試放入模塊中。導出測試函數可能不會嚴重違反模塊化。 (當然它雜波了模塊。)
我試着將.mli文件放入另一個目錄。這似乎工作得很好,但最終我認爲我會用Ashish的建議使用停止評論'(**/**)',因爲這樣做有點簡單。 +1雖然,好建議。 – declan
現在我正在與你的第一個建議。看起來像最簡單的解決方案。 – declan