Main Content

matlab.mock.actions.Invoke 类

包: matlab.mock.actions

调用方法时调用函数句柄

说明

要指定框架通过调用函数句柄来确定在调用 mock 对象方法时的输出,请使用 Invoke 类。此动作与 AssignOutputs 动作不同,后者返回在创建 AssignOutputs 实例时定义的值。

构造

action = invoke(fh) 在调用方法时调用 fh 指定的函数。

输入参数

全部展开

调用 mock 对象方法时调用的函数,指定为函数句柄。

框架向函数句柄传递的输入与它向 mock 方法传递的输入相同。因此,fh 通常包含一个参数列表。如果函数不与 mock 交互(例如通过访问属性进行交互),则可以在参数列表中使用波浪号 (~) 来忽略 mock 对象。框架请求输出的数量与 mock 方法调用的输出数量相同。

示例: @(~)randi(6)

示例: @(cmock)myFunction('hello')

示例: @isempty

属性

全部展开

调用 mock 对象方法时调用的函数,存储为函数句柄。

方法

repeat重复调用函数句柄
thenmock 对象交互触发的动作,或者是接在调用函数句柄后的动作

复制语义

值。要了解值类如何影响复制操作,请参阅复制对象

示例

全部折叠

创建一个 mock,用它来表示一个 6 面骰子并包含一个模拟 roll 方法的类。

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock("AddedMethods","roll");

定义行为以在每次调用 roll 方法时返回 1 到 6 之间的一个随机整数。

import matlab.mock.actions.Invoke
when(withExactInputs(behavior.roll),Invoke(@(~)randi(6)))

调用模拟的 roll 方法。

val = mock.roll
val = 5

版本历史记录

在 R2018b 中推出