matlab.unittest.constraints. Класс IsSameHandleAs

Пакет: 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.

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

| |

Была ли эта тема полезной?