then
类: matlab.mock.actions.Invoke
命名空间: matlab.mock.actions
mock 对象交互触发的动作,或者是接在调用函数句柄后的动作
语法
then(action1)
then(action1,action2)
输入参数
action1
— 定义的动作
matlab.mock.actions.Invoke
的实例
定义的动作,指定为 matlab.mock.actions.Invoke
的实例。
action2
— 第二个定义的动作
matlab.mock.actions.Invoke
的实例 | matlab.mock.actions.AssignOutputs
的实例 | matlab.mock.actions.DoNothing
的实例 | matlab.mock.actions.ThrowException
的实例
第二个定义的动作,指定为 matlab.mock.actions.Invoke
、matlab.mock.actions.AssignOutputs
、matlab.mock.actions.DoNothing
或 matlab.mock.actions.ThrowException
的实例。
示例
为 mock 的输出系列赋值
创建一个 mock,用它来表示一个 6 面骰子并包含一个模拟 roll
方法的类。
testCase = matlab.mock.TestCase.forInteractiveUse; [mock,behavior] = testCase.createMock('AddedMethods',"roll");
设置 roll
方法的行为。第一次运行时返回 0。在后续运行中,调用 randi
函数以返回 1 到 6 之间的一个随机整数。
import matlab.mock.actions.AssignOutputs import matlab.mock.actions.Invoke when(withExactInputs(behavior.roll), ... AssignOutputs(0).then(Invoke(@(~)randi(6))))
调用模拟的 roll
方法三次。
val = mock.roll
val = 0
val = mock.roll
val = 5
val = mock.roll
val = 6
提示
每次调用
then
时最多接受两项动作。要指定更多后续动作,请多次调用then
。例如,要指定三项动作,请使用action1.then(action2).then(action3)
。
版本历史记录
在 R2018b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)