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