求代码存根生成器(来自头文件)

时间:2010-01-07 13:27:27

标签: c++ c

想象一下,我有一个子系统的头文件,但无法访问源代码。

现在我想生成存根以匹配头文件中声明的所有函数(用于测试目的)。

我写了一些简单的代码来做到这一点,但它并不完美。有没有人知道任何可以免费获得的软件呢?


[更新]提问五年后,这个问题仍然有待提升。

它是关于主题的,现在它是关闭的(althoguh它不是最初发布时)。幸运的是,我们现在可以在https://softwarerecs.stackexchange.com/

询问软件建议

5 个答案:

答案 0 :(得分:6)

我认为stubgen可能就是您所追求的目标。

答案 1 :(得分:4)

以下是perl和vim http://www.vim.org/scripts/script.php?script_id=213的解决方案 它使用ctags,如果需要,可以通过使用包含的perl脚本轻松删除vim需要。

答案 2 :(得分:3)

Visual Studio Visual for Visual Studio具有此功能,但它不是自动化的。

关于功能

Tri ProjectTriOnPlane(Tri* a_Triangle);

然后,如果找到相应的.c或.cpp,请转到Refactor (VA X) -> Create Implementation,这将创建一个类似的实现:

Tri Camera::ProjectTriOnPlane( Tri* a_Triangle )
{

}

它也没有返回标准的东西,这有点遗憾。

答案 3 :(得分:3)

也许Lzz可以做你想要的。

答案 4 :(得分:1)

您可以使用doxygen轻松编写存根生成器。它并不为人所知,但它附带了一个帮助程序库,它提供了对XML输出的非常好的抽象(参见this page)。

如果你看一下this header file的结尾,你会发现你得到了很好的IStructs,IClass对象,你可以从中列出ISections然后列出IMembers。一切都非常简单,可根据自己的喜好进行定制。

我怀疑你会从通用工具中获得你想要的确切存根,如果你使用Doxygen编写自己的存根,你可能会更好,因为正确解析C ++语法的所有重要工作都是为你完成的。

如果你的测试模式主要依赖于方法参数的类型,你可以通过分析方法的参数并生成适当的代码来生成完整的测试存根。