我正在编写一些单元测试。 特别想测试一些私有(private)方法。
到目前为止,我已经想出了使用。
#define private public
但我对此并不满意,因为从单元测试的角度来看,它会破坏所有封装。
你使用什么方法对私有(private)方法进行单元测试。
最佳答案
与您在问题中提到的讨厌的 #define
hack 相比,更简洁的机制是使测试成为被测类的 friend 。这允许测试代码(并且只是测试代码)访问私有(private)数据,同时保护它们免受其他任何事情的影响。
但是,最好通过公共(public)接口(interface)进行测试。如果你的 X 类在私有(private)成员函数中有很多代码,那么可能值得提取一个新的 Y 类,它被 X 类的实现使用。然后可以通过它的公共(public)接口(interface)测试这个新的 Y 类,而不会暴露它的用于 X 类的客户。
关于c++ - 私有(private)方法的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3676664/