in-source testing
テストコードとテスト対象のコードが同じファイルにあること
Rust
言語組み込みのアトリビュートシステムによってプロダクションビルド時に消されるモジュールが書ける
Vitest
import.meta
で条件分岐し、プロダクションビルドではコンパイラ側で消す
define: { "import.meta.vitest": "undefined" }
とかしておくと
dead-code ellimination
されて消える
言語のモジュールシステムとアクセス指定の設計とかにもよるが、
プライベート関数のテスト
が可能