Main Content

assignOutputsWhen

类: matlab.mock.TestCase
命名空间: matlab.mock

定义方法调用或属性访问的返回值

语法

assignOutputsWhen(testcase,behavior,A1,...,An)

说明

assignOutputsWhen(testcase,behavior,A1,...,An) 定义要对调用的方法或访问的属性返回的值。

输入参数

全部展开

测试用例的实例,指定为 matlab.mock.TestCase 对象。

mock 的行为,指定为 matlab.mock.MethodCallBehaviormatlab.mock.PropertyGetBehavior 实例。要创建 matlab.mock.MethodCallBehavior 实例,请调用行为对象的方法。要创建 matlab.mock.PropertyGetBehavior 实例,请对行为对象的属性调用 get 方法。

示例: get(behavior.MyMockedProperty)

示例: withExactInputs(behavior.myMockedMethod)

定义的返回值,指定为标量、向量、矩阵或多维数组。返回值可以是任何数据类型,并且与 behavior 指定的属性或方法相关。

示例: "mySpecifiedValue"

示例: 7,13,42

示例: [1 2 3;4 5 6]

示例

全部展开

为输出赋值。

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock, behavior] = testCase.createMock('AddedProperties',"PropertyFoo", ...
    'AddedMethods',"methodBar");
testCase.assignOutputsWhen(get(behavior.PropertyFoo), 'abc');
testCase.assignOutputsWhen(withExactInputs(behavior.methodBar), 1, 2, 3);

% Carry out actions
mock.PropertyFoo
[out1,out2,out3] = mock.methodBar

备选方法

使用 assignOutputsWhen 方法在功能上等同于对 MethodCallBehaviorPropertyGetBehavior 类的 when 方法使用 matlab.mock.actions.AssignOutputs 动作。例如,以下代码块在功能上是等效的。

% Using the assignOutputsWhen method
testCase.assignOutputsWhen(get(behavior.PropertyFoo),'abc');
testCase.assignOutputsWhen(withExactInputs(behavior.methodBar),1,2,3);

% Using the AssignOutputs action with the when function
import matlab.mock.actions.AssignOutputs;
when(get(behavior.PropertyFoo),AssignOutputs('abc'));
when(withExactInputs(behavior.methodBar),AssignOutputs(1,2,3));
不过,在使用 AssignOutputs 动作时,会有更多功能。例如,您可以为相同的模拟对象交互指定不同的后续行为。

版本历史记录

在 R2017a 中推出