drag

Класс: testCase
Пакет: matlab.uitest

Выполните перетаскивание жеста на компоненте пользовательского интерфейса

Описание

пример

drag(testcase,comp,start,stop) выполняет жест перетаскивания из start на stop на компоненте пользовательского интерфейса comp.

Входные параметры

расширить все

Образец теста, заданный как matlab.uitest.TestCase объект.

Компонент для перетаскивания во время тестирования, заданный как объект компонента пользовательского интерфейса, который поддерживает перетаскивание жеста. Компоненты, поддерживающие жесты перетаскивания, включают оси, непрерывные ручки и ползунки.

Поддерживаемый компонентТипичная функция создания
Осиaxes
Кнопкаuiknob
Ползунокuislider
UI Axesuiaxes

Начальное значение жеста перетаскивания, заданное как числовой скаляр или числовой массив 1 на 2 или 1 на 3. Форма start зависит от компонента UI:

  • Ручка и ползунок - числовой скаляр в пределах компонента. Пределы определяются Limits свойство компонента.

  • Оси и UI Axes - A 1 на 2 или 1 на 3 числовой массив, содержащий x -, y - и опционально z - координаты.

Пример: 20 (ручка)

Пример: [2.5 3 1.25] (оси пользовательского интерфейса)

Значение остановки жеста перетаскивания, заданное как числовой скаляр или числовой массив 1 на 2 или 1 на 3. Форма stop зависит от компонента UI:

  • Ручка и ползунок - числовой скаляр в пределах компонента. Пределы определяются Limits свойство компонента.

  • Оси и UI Axes - A 1 на 2 или 1 на 3 числовой массив, содержащий x -, y - и опционально z - координаты.

Пример: 30 (ручка)

Пример: [5 3 2.25] (оси пользовательского интерфейса)

Примеры

расширить все

Создайте ручку.

knob = uiknob;

Создайте интерактивный тест и перетащите ручку между двумя значениями. Синяя точка, представляющая программный жест перетаскивания, появляется и затем исчезает, когда ручка достигает 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.

Перетащите ползунок между двумя значениями и проверьте окончательное значение. Поскольку среда имитирует пользователя, манипулирующего компонентом, на произвольно заданное значение, лучшая практика использовать допуск для сравнения фактических и ожидаемых значений ползунка.

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

Создайте ось в фигуру пользовательского интерфейса, а затем постройте график линии в осях. В этом примере график устанавливает оба предела по оси 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 на один модуль. Поскольку среда имитирует пользователя, манипулирующего компонентом, использование допуска для сравнения фактических и ожидаемых значений является рекомендуемой практикой.

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

Создайте ось в фигуру пользовательского интерфейса и постройте график поверхности в осях с помощью 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