Main Content

storeValueWhen

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

设置属性时存储值

语法

storeValueWhen(testcase,behavior)

说明

storeValueWhen(testcase,behavior) 指定当设置属性时,该 mock 应存储属性值。如果 mock 是严格 mock,并且该属性是 mock 接口的抽象属性,则在设置属性时框架将会生成断言失败。要允许在严格 mock 中设置属性,请使用 storeValueWhen 方法。

输入参数

全部展开

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

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

示例: set(behavior.MyMockedProperty)

示例

全部展开

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

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

允许设置 PropertyFoo 而不引发异常。

testCase.storeValueWhen(set(behavior.PropertyFoo));

备选方法

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

% Using the storeValueWhen method
testCase.storeValueWhen(set(behavior.PropertyFoo));

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

版本历史记录

在 R2017a 中推出