exponenta event banner

matlab.unittest.constraints.IsInstityOf класс

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

Ограничение, указывающее включение в данную иерархию классов

Строительство

IsInstanceOf(class) предоставляет ограничение, определяющее включение в заданную иерархию классов. Ограничение выполняется, если экземпляр фактического значения передает отношение «» isa class .

Входные аргументы

class

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

Свойства

Class

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

Копирование семантики

Значение. Сведения о том, как классы значений влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsInstanceOf

testCase = TestCase.forInteractiveUse;

Убедитесь, что фактическое значение 5 является экземпляром двойного класса.

testCase.verifyThat(5, IsInstanceOf('double'))
Interactive verification passed.

Повторите тест, используя экземпляр meta.class вместо символьного вектора.

testCase.verifyThat(5, IsInstanceOf(?double))
Interactive verification passed.

Убедитесь, что ноль является экземпляром логического класса.

testCase.assertThat(0, IsInstanceOf('logical'))
Interactive assertion failed.

---------------------
Framework Diagnostic:
---------------------
IsInstanceOf failed.
--> The value must be an instance of the expected type.
    
    Actual Class:
        double
    Expected Type:
        logical

Actual Value:
         0
Assertion failed.

Убедитесь, что @sin является дескриптором функции.

testCase.verifyThat(@sin, IsInstanceOf(?function_handle))
Interactive verification passed.

Убедитесь, что name является экземпляром char класс.

name = 42;
testCase.verifyThat(name, IsInstanceOf('char'))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsInstanceOf failed.
--> The value must be an instance of the expected type.
    
    Actual Class:
        double
    Expected Type:
        char

Actual Value:
        42

В файле в рабочей папке создайте класс, DerivedExample, которая наследует от handle класс.

classdef DerivedExample < handle
end

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsInstanceOf

testCase = TestCase.forInteractiveUse;

Убедитесь, что экземпляр DerivedExample класс является экземпляром handle.

exObj = DerivedExample;
testCase.verifyThat(exObj, IsInstanceOf(?handle))
Interactive verification passed.

Несмотря на то, что exObj не является экземпляром handle класс, проверка проходит, потому что она происходит от handle класс.

См. также

|