【问题标题】:Ibm Rational Rhapsody C++; using the Java Api: extract #include informationIBM Rational Rhapsody C++;使用 Java Api:提取#include 信息
【发布时间】:2018-01-25 18:18:37
【问题描述】:

我需要从 Rhapsody 中的单个 C++ 类中提取信息。使用 Java Api,获取类的操作和属性没有问题,但我还需要类使用的#include 路径。

Rhapsody 将这些信息保存在某处,当我生成类时它们在文件中可用。

从 Rhapsody 生成类不是一个选项,因为我需要以某种方式修改操作。

这是一个 Rhapsody 项目示例: https://www.datafilehost.com/d/1384936c

在提取类Bar的时候,我也想得到String“#include”stdint.h“”。

为了让你知道我想去哪里: 我想对 Foo 类进行单元测试,因此需要对 Bar 类进行模拟。单元测试框架是googletest。 直接从 rhapsody 项目生成模拟类会很有帮助。它应该是这样的:

    // file Bar_MOCK.h
    #include <stdint.h>
    #include <gmock/gmock.h>
    class Bar_MOCK {
    public:
      MOCK_METHOD1(getInt, void(uint64_t* val));
      MOCK_METHOD1(setInt, void(uint64_t val));
    };

【问题讨论】:

    标签: java unit-testing googletest rhapsody


    【解决方案1】:

    您将需要遍历属性和参数,查看类型,然后从这些类型向上导航层次结构以组合一个完全限定的命名空间来为您的 java 类进行导入。另一种选择是在您生成的 java 代码中使用完全限定的名称空间。哦,别忘了查阅 NameSpaceName 和 DefineNameSpace 属性。您可能希望将任何类的处理分解为至少 2 个步骤:1-收集并创建所需的导入,2-编写 Java 类的其余部分。

    【讨论】:

    • 我需要保存在 rhapsody 模型中的 C++ 类的#include 路径,只是为了澄清。
    • 给我一些示例 C++ 代码以及你想用 Java 实现什么,我会尽力提供帮助。
    • 我在描述中添加了一个例子。玩得开心!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    相关资源
    最近更新 更多