私はMATLABxUnitを使用していくつかのコードをテストしています。privateディレクトリ に含まれているいくつかの関数を直接呼び出せるようにしたいと思います。
簡単な複製可能なセットアップは次のとおりです。2つのフォルダcodeとを含むプロジェクトディレクトリを自分で作成しますtest。でcode、という名前のサブディレクトリを作成して、ディレクトリprivateツリーが次のようになるようにします。
project_root
code
private
test
codeディレクトリに関数を配置します
function y = main()
y = sub();
end
privatedirに関数を配置します
function y = sub()
y = 123;
end
testdirに関数を配置します
function testsub()
assertElementsAlmostEqual(sub(), 123);
end
次に、テストディレクトリに移動して、を呼び出しますruntests。sub未定義であるというエラーが表示されるはずです。
privatematlabパスではディレクトリが許可されていないため、これはオプションではありません。すべてのプライベート関数へのハンドルを取得する関数をdirに配置することもできcodeますが、これはハッキーのようです。
プライベート機能をテストするためのアクセスを取得するための最良の方法は何ですか?
編集:
プライベートディレクトリに移動するという考えには問題があります。理論的には、例えば、
cd(privateDirectory);
suite = TestSuite.fromName(testDirectory);
suite.run
残念ながら、テストフレームワークは、を呼び出すとすぐにテストを含むディレクトリに移動しますrun。