質問: 単体テスト(unit test) を行う方法として、クラス、関数またはスクリプトベースがありますが、どの方法が最適ですか? コードを単体テストしたいのですが、matlabにはクラス、スクリプト、関数に基づいて複数のアプローチがあります。どの方法がよいのか、教えてください。
回答: クラスベース、関数ベース、およびスクリプトベースのテストはすべて等しく有効なアプローチであり、 3つすべてが有効な xunit 実装です。 どの方法を使用するか、については、基本的には使用したい機能や、ユーザご自身の好み、書きやすいスタイルによって決定していただくこととなります。 クラスベースのテストは、ほとんどの機能(継承によるコード共有、共有テストフィクスチャ、パラメータ化されたテストなど)を提供しますが、スクリプトベースのテストは、それに比較すると提供されている機能は少なくなります。 一方、スクリプトベースのテストは、特にオブジェクト指向プログラミングに慣れていない場合、はるかに簡単に作成できます。 関数ベースのテストは、使いやすさと機能の範囲に関するクラスベースのテストとスクリプトベースのテストの中間のような機能です。 テストフレームワークの機能を優先させたい場合は、クラスベースのテストを作成することをお勧めします。 弊社のユーザコミュニティにも関連する投稿があります。 ・should i rather write scripts for tests and use the runtests function or define test classes which inherit from the matlab.unittest.testcase class? https://jp.mathworks.com/matlabcentral/answers/431379-should-i-rather-write-scripts-for-tests-and-use-the-runtests-function-or-define-test-classes-which-i