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

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

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

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


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

它是关于主题的,现在是它(althoguh它不是最初发布时)。 幸运的是,我们现在可以通过https://softwarerecs.stackexchange.com/索取软件建议

我认为stubgen可能就是你所追求的。

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

Visual Studio的Visual Assist X具有此function,但它不是自动化的。

关于function

 Tri ProjectTriOnPlane(Tri* a_Triangle); 

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

 Tri Camera::ProjectTriOnPlane( Tri* a_Triangle ) { } 

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

也许Lzz做你想要的。

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

如果查看此头文件的末尾 ,您将看到您获得了很好的IStructs,IClass对象,您可以从中列出ISections然后列出IMembers。 一切都非常简单,可根据自己的喜好进行定制。

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

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