Main Content

returnStoredValueWhen

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

访问属性时返回所存储的值

语法

returnStoredValueWhen(testcase,behavior)

说明

returnStoredValueWhen(testcase,behavior) 指定当访问属性时,该 mock 将返回存储的属性值。如果 mock 是严格 mock,并且该属性是 mock 接口的抽象属性,则在框架访问属性时将会生成断言失败。要启用对严格 mock 中的属性的访问,请使用 returnStoredValueWhen 方法。

输入参数

全部展开

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

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

示例: get(behavior.MyMockedProperty)

示例

全部展开

创建一个严格 mock。默认情况下,所有属性交互均会引发异常。

testCase = matlab.mock.TestCase.forInteractiveUse;
[mock,behavior] = testCase.createMock('AddedProperties',"PropertyFoo",...
    'Strict',true);

允许访问 PropertyFoo 而不引发异常。

testCase.returnStoredValueWhen(get(behavior.PropertyFoo));

备选方法

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

% Using the returnStoredValueWhen method
testCase.returnStoredValueWhen(get(behavior.PropertyFoo));

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

版本历史记录

在 R2017a 中推出