Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

drag

クラス: matlab.uitest.TestCase
パッケージ: matlab.uitest

UI コンポーネントでのドラッグ動作の実行

構文

drag(testcase,comp,start,stop)

説明

drag(testcase,comp,start,stop) は、comp UI コンポーネントの start から stop へのドラッグ動作を実行します。

入力引数

すべて展開する

テスト ケースのインスタンス。matlab.uitest.TestCase オブジェクトとして指定します。

テストでドラッグするコンポーネント。ドラッグ動作をサポートする UI コンポーネント オブジェクトとして指定します。ドラッグ動作をサポートするコンポーネントには、座標軸、連続型ノブやスライダーなどがあります。

サポートされるコンポーネント一般的な作成関数
座標軸axes
ノブuiknob
スライダーuislider
UI 座標軸uiaxes

ドラッグ動作の開始値。数値スカラー、または 1 行 2 列または 1 行 3 列の数値配列として指定します。start の形式は UI コンポーネントによって異なります。

  • ノブおよびスライダー — コンポーネントの範囲をもつ数値スカラー。範囲はコンポーネントの Limits プロパティで定義されます。

  • 座標軸および UI 座標軸 — x 座標、y 座標、およびオプションで z 座標を含む、1 行 2 列または 1 行 3 列の数値配列。

例: 20 (ノブ)

例: [2.5 3 1.25] (UI 座標軸)

ドラッグ動作の停止値。数値スカラー、または 1 行 2 列または 1 行 3 列の数値配列として指定します。stop の形式は UI コンポーネントによって異なります。

  • ノブおよびスライダー — コンポーネントの範囲をもつ数値スカラー。範囲はコンポーネントの Limits プロパティで定義されます。

  • 座標軸および UI 座標軸 — x 座標、y 座標、およびオプションで z 座標を含む、1 行 2 列または 1 行 3 列の数値配列。

例: 30 (ノブ)

例: [5 3 2.25] (UI 座標軸)

すべて展開する

ノブを作成します。

knob = uiknob;

対話型のテスト ケースを作成し、2 つの値の間でノブをドラッグします。プログラムによるドラッグ動作を表す青い点が表示され、ノブが stop の値に達すると消えます。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(knob,13,42)

最小値が -237、最大値が 237、開始値が 7 のスライダーを作成します。

slider = uislider('Limits',[-237 237],'Value',7);

対話型のテスト ケースを作成し、スライダーの初期値を確認します。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifyEqual(slider.Value,7)
Verification passed.

2 つの値の間でスライダーをドラッグし、最終値を確認します。フレームワークでは任意の適合値に対するコンポーネントの操作が模倣されるため、許容誤差を使用してスライダーの実際の値と期待される値を比較するのがベスト プラクティスです。

val = 26.75;
tc.drag(slider,-val,val)
tc.verifyEqual(slider.Value,val,'AbsTol',0.1)
Verification passed.

UI Figure 内に座標軸を作成し、その座標軸にラインをプロットします。この例では、プロットは x 軸と y 軸の範囲の両方を [1 10] に設定します。

f = uifigure;
ax = axes(f);
plot(ax,1:10)

対話的なテストケースを作成し、点 (3, 2) から点 (4, 2) までドラッグします。プログラムによるドラッグ動作を表す青色の点が開始値で表示され、停止値に達すると非表示になります。座標軸の範囲は開始値と停止値の差に基づいて更新されます。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(ax,[3 2],[4 2])

ドラッグ動作によって x 座標軸の範囲が 1 単位分減ったことを検証します。フレームワークはユーザーのコンポーネントに対する操作を再現するため、許容誤差を使用して実際の値と期待値とを比較することを推奨します。

tc.verifyEqual(ax.XLim,[0 9],'AbsTol',0.1)
Verification passed.

UI Figure 内に座標軸を作成し、関数 peaks を使用してその座標軸に表面をプロットします。次に、関数 view を呼び出して、座標軸に対するカメラの視線の方位角と仰角を保存します。

f = uifigure;
ax = axes(f);
surf(ax,peaks)
xlabel(ax,'X')
ylabel(ax,'Y')
zlabel(ax,'Z')
[caz_before,cel_before] = view(ax);

対話的なテストケースを作成し、点 (2, 2, -10) から点 (4, 4, 10) までドラッグします。プログラムによるドラッグ動作を表す青色の点が開始値で表示され、停止値に達すると非表示になります。表面プロットの表示がドラッグと共に変化します。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.drag(ax,[2 2 -10],[4 4 10])

ドラッグ動作により表面プロットの表示が変更されることを検証します。

[caz_after,cel_after] = view(ax);
tc.verifyNotEqual([caz_after cel_after],[caz_before cel_before])
Verification passed.
R2018a で導入