在这个关于bool和1的问题的评论中帮助解决正在进行的辩论:
符合标准的C++预处理器是否允许#define用户重新定义语言关键字?如果是这样,符合标准的C++预处理器是否允许这样做?
如果C++程序重新定义了一个语言关键字,那么该程序本身是否符合标准?
我想知道单元测试私有方法是否是一个好习惯?
通常只应测试公共接口.
但是,我发现在复杂计算过程中,调用大量不同的私有方法,首先对私有方法进行单元测试更容易,然后对公共接口方法进行简单测试.
举个例子,假设你有一个音频播放器,你有功能:
void play(){ ... }
void pause(){ ... }
void seek(time t)
{
//All Private methods
checkIfValidTimeRange(...);
moveToFilePos(...);
fillBuffers(...);
}
Run Code Online (Sandbox Code Playgroud)
通常我会编写单元测试:checkIfValidTimeRange(...),moveToFilePos(...), fillBuffers(...).
但我不确定这样做是不是很好.
我正在为我的应用程序编写单元测试,现在我偶然发现了一个我应该测试私有方法的类.这可能是特定班级设计不佳的结果,但我必须这样做.有没有办法在Qt中调用私有方法,可能使用QMetaObject或类似的东西?
对于单元测试,我使用的是QTestLib框架.