gpt4 book ai didi

c++ - 使用 -fno-access-control 进行单元测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:37 25 4
gpt4 key购买 nike

我见过很多在单元测试时访问私有(private)变量的疯狂方法。我见过的最令人兴奋的是 #define private public

但是,我从未见过有人建议在编译器级别关闭私有(private)变量。我一直以为你做不到。我曾向许多开发人员提示说,如果您可以只告诉编译器为这个文件后退,单元测试会容易得多。

然后我偶然发现了 -fno-access-control GCC 编译器选项。这显然是单元测试的完美方式。你的原始源文件没有被修改,没有注入(inject) friend 只是为了单元测试,没有用奇怪的预处理器魔法重新编译。编译单元测试时,只需轻按“无访问控制”开关即可。

我错过了什么吗?这是我希望的单元测试 Elixir 吗?

我看到的唯一缺点是该技术特定于 GCC 的性质。但是,我假设 MSVS 有一个类似的标志。

最佳答案

我认为单元测试不需要访问私有(private)成员。

一般来说,单元测试旨在测试类的接口(interface),而不是内部实现。那样的话,只有在接口(interface)被破坏的情况下,对内部结构的更改才会破坏测试。

看看我的 answer类似的问题,以及随后的讨论。可以肯定的是,这是一个有争议的话题,但这是我的 0.02 美元。

关于c++ - 使用 -fno-access-control 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/860923/

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