我实现了一个 * 多线程 * 共享出租车模拟器。
除了产生实时活动和显示路线图的线程外,项目还包含以下线程:
1.一个MatchMaker
线程,用于运行出租车和乘客之间的匹配算法。
1.每个Taxi
都在自己的线程上运行,该线程在任何给定时刻计算出租车的当前位置,以及接送MatchMaker
匹配的所有乘客的最短路线。
我想写一个JUnit
测试来检查每辆出租车的操作顺序(* 上客、下客和换路 *)。
我的简单解决方案是让每个线程在每次操作后写入日志文件,例如。"Taxi <taxi-id> picked up <passenger-id>."
然后从日志文件中重建操作顺序。最后,检查它是否符合我的期望。
然而,我非常肯定这种方法是低效的。
那么,测试线程的操作顺序的正确/传统方法是什么呢?
1条答案
按热度按时间hk8txs481#
为什么不根据结果进行测试呢?那么预定的取货最终会到达它们的位置吗?根据结果进行测试会使您的测试对未来的变化不太敏感,因为它不太依赖于实现。