gpt4 book ai didi

c++ - 我应该如何对代码生成器进行单元测试?

转载 作者:IT老高 更新时间:2023-10-28 20:29:08 26 4
gpt4 key购买 nike

我知道这是一个困难且开放式的问题,但我想我会把它扔到地板上,看看是否有人有任何有趣的建议。

我开发了一个代码生成器,它将我们的 python 接口(interface)与我们的 C++ 代码(通过 SWIG 生成)相结合,并生成将其公开为 WebServices 所需的代码。当我开发这段代码时,我是使用 TDD 完成的,但我发现我的测试非常脆弱。因为每个测试本质上都想验证对于给定的输入代码位(恰好是 C++ header )我会得到给定的输出代码位我编写了一个小引擎,它从 XML 输入文件中读取测试定义并生成测试这些预期的案例。

问题是我根本不敢修改代码。这一点以及单元测试本身是 a:复杂,b:脆弱的事实。

因此,我正在尝试考虑解决此问题的替代方法,这让我感到震惊,我可能是以错误的方式解决它。也许我需要更多地关注结果,IE:我生成的代码是否真正运行并执行我想要的操作,而不是代码看起来像我想要的那样。

有没有人愿意分享类似的经历?

最佳答案

我开始写我自己的代码生成器的经验总结,然后回去重新阅读你的问题,发现你自己已经触及了同样的问题,专注于执行结果而不是代码布局/看。

问题是,这很难测试,生成的代码可能不适合在单元测试系统的环境中实际运行,你如何编码预期的结果?

我发现您需要将代码生成器分解成更小的部分并对它们进行单元测试。如果您问我,对完整的代码生成器进行单元测试更像是集成测试而不是单元测试。

关于c++ - 我应该如何对代码生成器进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com