matlab.unittest.constraints.IsSameHandleAs class

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints.BooleanConstraint

Ограничение, задающее экземпляр указателя то же самое как другой

Конструкция

IsSameHandle(h) обеспечивает ограничение, задающее экземпляр указателя, или группа экземпляров - то же самое как другой.

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

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

h

handle объект или массив handle объекты. Массив фактического значения, переданный проверке, должен быть одного размера с h.

Примеры

свернуть все

В файле в вашей рабочей папке создайте следующий класс Handle для интерактивного тестирования.

classdef ExampleHandle < handle
end

В командной строке создайте тест для интерактивного тестирования.

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSameHandleAs

testCase = TestCase.forInteractiveUse;

Инстанцируйте двух указателей.

h1 = ExampleHandle;
h2 = ExampleHandle;

Проверьте что указатель, h1, совпадает с h1.

testCase.verifyThat(h1, IsSameHandleAs(h1))
Interactive verification passed.

Протестируйте тот h1 тот же экземпляр указателя как h2.

testCase.verifyThat(h1, IsSameHandleAs(h2))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsSameHandleAs failed.
--> Values do not refer to the same handle.

Actual Value:
      ExampleHandle with no properties.
Expected Handle Object:
      ExampleHandle with no properties.

Протестируйте это, два массива указателей являются теми же экземплярами.

expArr = [h1 h2 h1];
actArr = [h1 h2 h1];

testCase.verifyThat(expArr, IsSameHandleAs(actArr))
Interactive verification passed.

Массивы удовлетворяют ограничению даже при том, что элементами в конкретном массиве не является тот же экземпляр друг как друг.

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

testCase.verifyThat([h1 h1], IsSameHandleAs(h1))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsSameHandleAs failed.
--> Sizes do not match.
    	Actual Value Size           : [1  2]
    	Expected Handle Object Size : [1  1]

Actual Value:
      1x2 ExampleHandle array with no properties.
Expected Handle Object:
      ExampleHandle with no properties.

Точно так же ограничению не удовлетворяют один экземпляр указателя, если оно ожидает массив указателей.

testCase.verifyThat(h2, IsSameHandleAs([h2 h2]))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsSameHandleAs failed.
--> Sizes do not match.
    	Actual Value Size           : [1  1]
    	Expected Handle Object Size : [1  2]

Actual Value:
      ExampleHandle with no properties.
Expected Handle Object:
      1x2 ExampleHandle array with no properties.

Смотрите также

| |