我们有一个处理消息的系统。每条消息都有一个与之关联的到期时间。工作线程在后台持续运行,并收集过期且需要删除的消息。工作线程将此类消息的ID发送到下一个服务。
在nunit测试用例中,我们正在创建虚拟消息,并在测试用例结束时检查其状态是否设置为过期。但为此我们必须将thread.sleep放在测试用例中,等待工作线程完成其任务。但是,睡眠也不可靠,因为来自worker的respose取决于数据库中的记录数。
使用nunit和C#测试此类场景的策略应该是什么。
答案 0 :(得分:1)
OnExpiredMessagesReceived
),它通知该服务已收到过期消息的ID。ManualResetEvent
等待,直到收到来自服务的事件。然后,您必须将收到的ID与预期的ID进行比较。