choose
クラス: matlab.uitest.TestCase
名前空間: matlab.uitest
UI コンポーネントでの選択動作の実行
構文
説明
入力引数
テスト ケース。matlab.uitest.TestCase オブジェクトとして指定します。
テスト中に選択するコンポーネント。選択動作をサポートする UI コンポーネント オブジェクトとして指定します。選択動作をサポートするコンポーネントには、チェック ボックス、ノブ、スイッチ、ドロップダウン リストが含まれます。
| サポートされるコンポーネント | 一般的な作成関数 |
|---|---|
| ボタン グループ | uibuttongroup |
| チェック ボックス | uicheckbox |
| 離散型ノブ | uiknob |
| ドロップ ダウン | uidropdown |
| ノブ | uiknob |
| リスト ボックス | uilistbox |
| ラジオ ボタン | uiradiobutton |
| スライダー | uislider |
| 状態ボタン | uibutton |
| スイッチ (ロッカー、スライダー、トグル) | uiswitch |
| タブ グループ | uitabgroup |
| トグル ボタン | uitogglebutton |
| トグル ツール | uitoggletool |
UI コンポーネント内で選択する項目。option のデータ型は、テストするコンポーネントの型によって異なります。たとえば、コンポーネントがスイッチの場合、option はスイッチの Items プロパティからのテキストまたは数値になります。コンポーネントがチェック ボックスまたはトグル ツールの場合、option は logical 値になります。編集可能なセルを含むテーブル UI コンポーネントの場合、option は logical 値またはセルに含まれるデータに対応するドロップダウン項目になります。
コンポーネントに Items プロパティがある場合、option は Items 内の要素の値、または Items 内の要素へのインデックスになります。たとえば、既定の離散型ノブでは、option の値として 'Medium' または 3 を使用して 'Medium' を選択できます。
選択するコンポーネント。選択動作をサポートし、追加情報を必要としない UI コンポーネント オブジェクトとして指定します。選択動作をサポートするコンポーネントには、タブやツリー ノードが含まれます。
| サポートされるコンポーネント | 一般的な作成関数 |
|---|---|
| タブ | uitab |
| ツリー ノード | uitreenode |
ターゲットのテーブル UI コンポーネント。matlab.ui.control.Table オブジェクトとして指定します。テーブル UI コンポーネントは、関数 uitable で作成されます。
選択するテーブル セルのインデックス。N 行 2 列の配列として指定します。indices の形状はセル選択のタイプによって異なります。
1 つ以上のセルの連続していない選択 — N 行 2 列の行列。ここで、N は選択するセルの数です。行列の各行は、選択するセルの行および列のインデックスに対応します。
複数のセルの連続した選択 — 選択するセルのブロックの境界を指定する 2 行 2 列の行列。行列の各行は、セルの行および列のインデックスに対応します。アプリ テスト フレームワークは、指定されたセルとその間にあるすべてのセルで選択動作を実行します。
例: [1 2] (単一のセルの選択)
例: [2 3; 2 4; 5 1] (3 つのセルの連続していない選択)
例: [1 1; 3 3] (9 つのセルの連続した選択)
例
離散型ノブを作成します。
knob = uiknob('discrete');
対話型のテスト ケースを作成し、ノブの値 'High' を選択します。アニメーション化された青い点でプログラムによる選択動作が示されます。
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.choose(knob,'High')
ノブの Items プロパティの値を表示します。
knob.Items
ans =
1×4 cell array
{'Off'} {'Low'} {'Medium'} {'High'}インデックスでノブの値 'Low' を選択します。ノブが 'High' から 'Low' に切り替わります。
tc.choose(knob,2)

リスト ボックスを作成し、複数のノードを選択できるようにします。
listbox = uilistbox('Multiselect','on')
listbox =
ListBox (Item 1) with properties:
Value: {'Item 1'}
Items: {'Item 1' 'Item 2' 'Item 3' 'Item 4'}
ItemsData: []
Multiselect: 'on'
ValueChangedFcn: ''
Position: [100 100 100 74]
Show all properties
対話型のテスト ケースを作成し、項目 1 ~ 3 を選択します。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.choose(listbox,1:3)

Items プロパティの値を使用して項目 1 と 3 を選択します。
tc.choose(listbox,{'Item 1','Item 3'})
スライダーを作成します。
s = uislider;
対話型のテスト ケースを作成し、スライダー ボタンの値が 0 であることを確認します。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.verifyEqual(s.Value,0)
Verification passed.
新しいスライダーの値を選択し、スライダーの値が変わることを確認します。フレームワークでは任意の適合値に対するコンポーネントの操作が模倣されるため、許容誤差を使用してスライダーの実際の値と期待される値を比較するのがベスト プラクティスです。
expVal = 42;
tc.choose(s,expVal)
tc.verifyEqual(s.Value,expVal,'AbsTol',0.1)Verification passed.
2 つのタブを含む Figure を作成します。
fig = uifigure; group = uitabgroup(fig); tab1 = uitab(group,'Title','Tab #1'); tab2 = uitab(group,'Title','Tab #2');
対話型のテスト ケースを作成し、選択されているタブのタイトルに部分文字列 '#1' が含まれていることを確認します。
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifySubstring(group.SelectedTab.Title,'#1')verification passed.
タブ 2 を選択し、タブの選択が変わることを確認します。
tc.choose(group,'Tab #2')
tc.verifyEqual(group.SelectedTab,tab2)Verification passed.
テキストと logical 値を含むテーブル UI コンポーネントを作成します。
name = {'Smith'; 'Chang'; 'Green'};
address = { ...
sprintf('456 Elm Avenue\nApt. 789\nNew York, NY 67890'); ...
sprintf('123 Maple Street\nBoston, MA 12345'); ...
sprintf('789 Oak Lane\nLos Angeles, CA 23456')};
eligibility = {true; true; false};
fig = uifigure;
uit = uitable( ...
Parent=fig, ...
Position=[20 20 400 200], ...
Data=[name address eligibility], ...
ColumnName=["Last Name" "Address" "Eligible"], ...
ColumnEditable=[false false true]);
対話型テスト用にテスト ケースを作成し、インデックス (2,2) をもつテーブル セルを選択します。choose メソッドでは、セルの中央を押して選択を行います。
testCase = matlab.uitest.TestCase.forInteractiveUse; testCase.choose(uit,[2 2])

インデックス (1,3) をもつテーブル セルを選択して、そのセルのチェック ボックスをオフにします。指定のテーブル セルに logical 値が含まれるため、choose メソッドではセルの中央を押す代わりにチェック ボックスを操作します。
testCase.choose(uit,[1 3])

ランダムな整数からなる 3 行 10 列の配列を表示するテーブル UI コンポーネントを作成します。
fig = uifigure;
uit = uitable(fig,'Data',randi(100,10,3));対話型のテスト ケースを作成し、インデックス (1,1) および (3,3) をもつセルを選択します。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.choose(uit,[1 1; 3 3],'SelectionMode','discontiguous')

次に、インデックス (1,1) および (3,3) をもつセルと、それらのセル間にあるすべてのセルを選択します。
tc.choose(uit,[1 1; 3 3],'SelectionMode','contiguous')

バージョン履歴
R2018a で導入入れ子にされたノードを操作するためにツリー ノードを展開する必要があるユーザーの操作をより忠実に再現するために、折りたたまれたツリー ノードで choose メソッドを使用して動作を実行するときにノード展開コールバックが実行されます。コールバックはツリーの NodeExpandedFcn プロパティを設定することで指定できます。
たとえば、ツリーの入れ子にされたノードで選択動作を実行し、プログラムによって展開されたすべてのノードのテキストを表示します。
fig = uifigure; t = uitree(fig); t.NodeExpandedFcn = @(src,event) disp(event.Node.Text); parent = uitreenode(t,"Text","Runners"); child1 = uitreenode(parent,"Text","Joe"); child2 = uitreenode(parent,"Text","Linda"); testCase = matlab.uitest.TestCase.forInteractiveUse; testCase.choose(child2)
コールバックを実行せずに R2023b 以前の動作を維持する場合は、動作の実行前にツリー ノードを展開します。次のコードでは、コールバックは実行されません。
fig = uifigure; t = uitree(fig); t.NodeExpandedFcn = @(src,event) disp(event.Node.Text); parent = uitreenode(t,"Text","Runners"); child1 = uitreenode(parent,"Text","Joe"); child2 = uitreenode(parent,"Text","Linda"); testCase = matlab.uitest.TestCase.forInteractiveUse; expand(parent) testCase.choose(child2)
テーブル UI コンポーネントのテストで選択動作を実行することができます。choose メソッドには、単一のテーブル セルまたは複数のテーブル セルについて選択動作をテストするための新しい構文があります。
トグル ツールのテストで選択動作を実行することができます。
インデックスを使用してラジオ ボタンまたはトグル ボタンを選択する場合、アプリ テスト フレームワークは ButtonGroup オブジェクトの Buttons プロパティにインデックスを付けます。以前のリリースでは、フレームワークは ButtonGroup オブジェクトの Children プロパティにインデックス付けを行います。たとえば、6 つのトグル ボタンをもつボタン グループを作成します。
f = uifigure; bg = uibuttongroup(f); tb1 = uitogglebutton(bg,'Position',[11 165 140 22],'Text','One'); tb2 = uitogglebutton(bg,'Position',[11 140 140 22],'Text','Two'); tb3 = uitogglebutton(bg,'Position',[11 115 140 22],'Text','Three'); tb4 = uitogglebutton(bg,'Position',[11 90 140 22],'Text','Four'); tb5 = uitogglebutton(bg,'Position',[11 65 140 22],'Text','Five'); tb6 = uitogglebutton(bg,'Position',[11 40 140 22],'Text','Six');
次の表に、インデックス 2 で指定されるトグル ボタンの選択動作の結果を示します。
| テスト | R2020b 以降 | R2020a 以前 |
|---|---|---|
tc = matlab.uitest.TestCase.forInteractiveUse; tc.choose(bg,2) | MATLAB® は、配列 | MATLAB は、配列 |
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)