MatlabのxUnitフレームで同じセットアップコードを共有するテストに複数のパラメータを渡す方法は?
-
16-09-2019 - |
質問
どのように」によると、
:共通設定アップコードの」それが可能であるテストを書きますfunction test_suite = testSetupExample
initTestSuite;
function fh = setup
fh = figure;
function teardown(fh)
delete(fh);
function testColormapColumns(fh)
assertEqual(size(get(fh, 'Colormap'), 2), 3);
function testPointer(fh)
assertEqual(get(fh, 'Pointer'), 'arrow');
しかし、私はそれがより多くのパラメータを使用して動作させることができませんでした。
function test_suite = testSetupExample
initTestSuite;
function [fh,fc] = setup
fh = figure;
fc = 2;
end
function teardown(fh,fc)
delete(fh);
function testColormapColumns(fh,fc)
assertEqual(size(get(fh, 'Colormap'), fc), 3);
function testPointer(fh,fc)
assertEqual(get(fh, 'Pointer'), 'arrow');
私はruntestsと書いたとき、それは述べています:
入力引数 "FC" が定義されていません。
それはなぜですか?私が何か間違ったことをしたり、それは、MATLABのxUnitの現在のバージョンでサポートされていないのですか?それを回避する方法?
PS:実は私のMATLABは終わりを持っている各機能を必要とします。私は、マニュアルの例との一貫性を保つためにそれらをここに書いていませんでした。
解決
ただ、構造体を使用します:
function test_suite = testSetupExample
initTestSuite;
function [fh] = setup
fh.one = figure;
fh.two = 2;
end
function teardown(fh)
delete(fh.one);
function testColormapColumns(fh)
assertEqual(size(get(fh.one, 'Colormap'), fc.two), 3);
など。
他のヒント
フレームワークは、単一の出力引数を使用してセットアップ関数を呼び出します。あなたのセットアップ機能からより多くの情報を渡したい場合は、構造体にすべてをバンドルしています。
また、ここで終わりで関数を終了するためのルールがあります。 (これらの規則は、2004年にMATLAB 7.0で導入された、それ以来変わっていません。)
ファイル内の任意の関数が終了して終了した場合は、、そのファイル内のすべての関数は、エンドで終了する必要があります。
ネストされた関数は、常にエンドで終了する必要があります。ファイルには、ネストされた機能が含まれている場合ので、そのファイル内のすべての関数は、エンドで終了する必要があります。
CLASSDEFファイルのすべての関数とメソッドは、エンドで終了する必要があります。
所属していません StackOverflow