我需要测试我的库是否以正确的顺序处理某些(用户定义的)事件。目前,我正在做一些非常简单的事情。我创建了一个缓冲区,并让每个事件都为其附加不同的值:
val buf = new collection.mutable.ArrayBuffer[Int];
val ev1 = () => { buf += 1; }
val ev2 = () => { buf += 2; }
//
// ... library runs the events ...
//
// check that ev2 ocurred before ev1
buf should be (ArrayBuffer(2, 1))
有没有更好更清晰的方法?
更新:同时我创建了一个小工具包来帮助我进行测试。主类Event
允许在针对其他事件发生计算时包装计算、函数和寄存器。我对scalatest只有一点了解,所以我不知道如何更好地整合它——如果你知道,请提出建议。