主要内容

matlab.mock.constraints.Occurred类

包:matlab.mock.constraints
超类:

约束限定模拟对象交互

描述

发生Constraint限定一个或多个模拟对象交互的发生。它为指定至少一个未发生的交互的任何实际值数组产生确认失败。的数组MethodCallBehaviorPropertyGetBehavior,或PropertySetBehavior所有引用相同模拟对象的对象。

使用发生约束来限定方法调用、属性访问或属性修改的任何组合。

默认情况下,约束限定所有交互至少以任意顺序发生一次。的RespectingOrder名称-值对支持以指定顺序发生交互的限定。

建设

constraint = matlab.mock.constraints.发生提供一个约束,用于确定是否发生了所有指定的交互。

constraint = matlab.mock.constraints.Occurred('RespectingOrder',特遣部队提供尊重指定交互的发生顺序的约束。

输入参数

全部展开

是否尊重交互的顺序,指定为真正的.默认情况下,约束不要求交互以指定的顺序发生。

数据类型:逻辑

属性

全部展开

此属性是只读的。

约束是否尊重交互的顺序,存储为真正的.的RespectOrder属性是默认为,但可设置为真正的在构造约束时使用“RespectingOrder”名称-值对。

数据类型:逻辑

复制语义

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

例子

全部折叠

为person类创建一个mock。

testCase = matlab.mock.TestCase.forInteractiveUse;[fakePerson,behavior] = testCase.createMock(“AddedProperties”, (“名称”“年龄”],...“AddedMethods”“说”);

方法来使用模拟说话方法,访问年龄属性,并设置的名字财产。

fakePerson.speak (“你好”);年龄= fakePerson.Age;fakePerson。Name =“z”

方法的调用说话方法。“你好”发生。

进口matlab.mock.constraints.Occurred;testCase.verifyThat (behavior.speak (“你好”),发生)
验证通过。

验证年龄属性被访问时,则说话方法使用“你好”,以及的名字属性设置为“z”

testCase.verifyThat ([(behavior.Age),...behavior.speak (“你好”),...behavior.Name.setToValue (“z”)),发生)
验证通过。

重复验证,但要求仅当交互以指定顺序发生时才满足约束。此测试失败是因为说话方法之前调用年龄属性已设置。

testCase.verifyThat ([(behavior.Age),...behavior.speak (“你好”),...behavior.Name.setToValue (“z”),发生(“RespectingOrder”,真正的))
验证失败。--------------------- 框架的诊断 : --------------------- 发生失败。——>发生了所有指定的交互。——>交互没有按照指定的顺序发生。实际顺序:speak([1×1 matlab.mock.classes.]Mock], "hello") 。年龄<模拟>。Name =“z”Specified interactions: 1×3 heterogeneous InteractionBehavior (PropertyGetBehavior, MethodCallBehavior, PropertySetBehavior) array with no properties. .Age [...] = speak(, "hello") .Name = "Zed"

重复验证并指定交互应该以不同的顺序发生。

testCase.verifyThat ([behavior.speak (“你好”),...(behavior.Age),...behavior.Name.setToValue (“z”),发生(“RespectingOrder”,真正的))
验证通过。

版本历史

在R2018b中引入