大致而言,我有一个实现了线程的类,只有一个公共方法run
。该方法进入一个循环,充当分发器以逐个处理网络消息,如下所示:
class WorkerThread {
public:
void run() {
while (!b_shutdown) {
message = getNextMessage();
switch(message.type) {
case WRITE:
write();
case READ:
read();
// ...
// more cases to handle
}
}
}
private:
void write() { /* logic to test */ }
void read() { /* logic to test */ }
// more private methods with logic that needs testing
// some member variables
};
因此,重点是我真的不想:
- 将私有方法提取到另一个类中,因为从语义上讲,它们是
WorkerThread
的一部分。 - 将这些方法公开,因为它们在类外部没有被使用。
- 跳过测试,因为这些方法实现了主要的逻辑。
注意:
- 可能需要更多的公共方法来处理线程的启动和终止,但这不是本文关注的问题。
- 我认为这个问题不仅限于
c++
,所以我也打了更流行的静态类型语言Java
的标签,以引起更多的关注:P