createMock

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

Создайте объект макет

Синтаксис

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

Описание

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

[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 свойства к нему.

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

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

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

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

Пример: "MyProperty"

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

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

Пример: "MyEvent"

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

Значения свойств по умолчанию, заданные как скалярный struct. Используйте этот аргумент пары "имя-значение", чтобы задать значения по умолчанию для свойств, реализованных классом объекта 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 вход, возвращается как объект mock. Если макет построен без определения суперкласса, он не имеет явного интерфейса.

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

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

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

Примеры

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

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

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