exponenta event banner

createMock

Класс: matlab.mock.StartCase
Пакет: matlab.mock

Создать имитационный объект

Синтаксис

[mock,behavior] = createMock(testcase)
[mock,behavior] = createMock(testcase,superclass)
[mock,behavior] = createMock(___,Name,Value)

Описание

[mock,behavior] = createMock(testcase) создает имитационный объект и связанный с ним объект поведения.

[mock,behavior] = createMock(testcase,superclass) создает макет, производный от superclass класс.

[mock,behavior] = createMock(___,Name,Value) создает макет с дополнительными опциями, заданными одним или несколькими Name,Value аргументы пары. Этот синтаксис можно использовать с любым из аргументов предыдущих синтаксисов.

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

развернуть все

Экземпляр тестового случая, указанный как matlab.mock.TestCase объект.

Суперкласс для макета, заданный как скаляр meta.class объект. Объект mock реализует все абстрактные свойства и методы этого класса.

Пример: ?MyIterfaceClass

Пример: ?MException

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Например, [mock,behavior] = testCase.createMock('AddedProperties',{'Prop1','Prop2'}) создает макет и добавляет Prop1 и Prop2 свойства для него.

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

Пример: ["methodA","methodB","methodC"]

Пример: {'method1','method2'}

Имена свойств для добавления в макет, заданные как строковый массив или массив ячеек символьных векторов. Если макет не является строгим, можно задать и получить их значения. Однако, если макет является строгим, по умолчанию MATLAB ® вызывает сбой утверждения при установке или получении значения свойства.

Пример: "MyProperty"

Пример: {'Prop1','Prop2'}

Имена событий для добавления в макет, заданные как строковый массив или массив ячеек символьных векторов. Чтобы добавить события в макет, объект макета должен быть производным от класса дескриптора.

Пример: "MyEvent"

Пример: {'Event1','Event2'}

Значения свойств по умолчанию, заданные как скалярная структура. Этот аргумент пары «имя-значение» используется для указания значений по умолчанию для свойств, реализуемых классом объекта mock. Эти свойства включают Abstract свойства и свойства суперкласса, добавленные с помощью 'AddedProperties' аргумент пары имя-значение. Каждое поле ссылается на имя свойства, реализованного в классе mock, и соответствующее значение представляет значение по умолчанию для этого свойства.

Пример: struct('PropA',123,'PropB',true)

Методы для моделирования, заданные с помощью имен методов в строковом массиве или массиве ячеек символьных векторов. Чтобы указать, что методы не издеваются, используйте пустое значение, указанное как string.empty, или {}. По умолчанию издеваются все методы.

MockedMethods может включать любое подмножество добавленных методов, абстрактные методы суперкласса и конкретные методы суперкласса, которые могут быть переопределены (Sealed значение атрибута false). В общем, вы включаете только те методы, которые хотите заглушить или шпионить.

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

Пример: [«foo», «bar»]

Типы данных: char | string | cell

Индикатор, если макет строгий, указан как false или true. По умолчанию метод mock возвращает пустой массив, если поведение не определено. Если установить Strict кому true, структура создает сбой утверждения для неопределенного поведения для

  • Все abstract методы и свойства указанного интерфейса.

  • Методы, добавленные в макет с помощью AddedMethods аргумент.

  • Свойства, добавленные в макет с помощью AddedProperties аргумент.

Типы данных: logical

Входы для передачи в superclass конструктор, заданный как массив ячеек значений.

Пример: Если вы создаете макет, где вы определяете superclass быть ?MException, 'ConstructorInputs' может быть {'My:ID','My message'}.

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

развернуть все

Реализация абстрактных методов и свойств интерфейса, указанных superclass , возвращаемый как имитационный объект. Если макет создается без определения суперкласса, он не имеет явного интерфейса.

Примечание.Нельзя сохранять и загружать имитационные объекты.

Определение имитационного поведения, возвращаемого как объект поведения. Использовать behavior для определения имитационных действий и проверки взаимодействий.

Примечание.Сохранить и загрузить объекты поведения невозможно.

Примеры

развернуть все

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

testCase = matlab.mock.TestCase.forInteractiveUse;

Постройте строгий макет.

[mock,behavior] = testCase.createMock('AddedMethods',"foo",'Strict',true);

Создайте макет с помощью определенных методов.

[mock,behavior] = testCase.createMock('AddedMethods',...
    {'one','two','three'});

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

[mock,behavior] = testCase.createMock(?handle,'AddedEvents',...
    {'EventA','EventB'});

Создайте макет с входами конструктора.

[mock,behavior] = testCase.createMock(?MException,'ConstructorInputs',...
    {'My:ID','My message'});

Создайте макет с двумя свойствами. Prop2 имеет значение по умолчанию false.

mock = testCase.createMock('AddedProperties',{'Prop1','Prop2'},...
    'DefaultPropertyValues',struct('Prop2',false))
mock = 

  Mock with properties:

    Prop1: []
    Prop2: 0

Создайте макет, который переопределяет isnan и isinf методы класса double.

[mock,behavior] = testCase.createMock(?double,"MockedMethods",["isnan","isinf"],...
    "ConstructorInputs",{123});
Представлен в R2017a