我有一个活动图,想使用 Cameo 模拟工具包对其进行模拟。 模拟活动后,我想检查是否使用了某些特定操作(即使用了活动图的哪个场景或路径)。
检查执行了哪种场景后,我想收到一条消息,告诉我测试是否通过或失败。因此,我将“测试用例”构造型设置为活动的应用构造型。 为了初始化变量,我尝试使用 OCL2.0 设置约束,例如这个命令,然后我触发模拟:
context Test::myVariable: Integer init 1
不幸的是,当我使用 OCL 时,此初始化似乎被忽略,但当我使用 python 作为约束语言时,它似乎有效。
我在这里做错了什么,还是不支持OCL初始化变量/参数?
当然应该有效。我了解 MagicDraw 使用 Eclipse OCL,尽管他们从未请求许可/建议或提供任何支持。
使用 Eclipse OCL 编辑器对 RoyalAndLoyal.ocl 进行以下解析即可。
context LoyaltyAccount::points : Integer init : 0
但是,如果删除最后一个 : 来模仿您的示例,编辑器会报告“不匹配的输入 ':' 期望 '('”
您的示例似乎有拼写错误,或者您没有使用足够的 OCL,或者您的 OCL 没有充分嵌入 MagicDraw 中。
尝试添加缺少的“:”,如果有效,请了解如何在 MagicDraw 中使用 Eclipse Complete OCL 编辑器,以便获得更好的诊断。