随着软件变得越来越并发,您如何使用单元测试来测试类型的核心行为(不是并行行为,只是核心行为)?
在过去的美好时光里,你有一个类型,你调用它,然后检查它返回的内容和/或它调用的其他东西。
现在,您调用一个方法,实际工作被安排在下一个可用线程上运行;你不知道它什么时候真正开始并调用其他的东西——更重要的是,那些其他的东西也可能是并发的。
你如何处理这个问题?您是否抽象/注入并发调度程序(例如抽象任务并行库并在单元测试中提供假/模拟)?
你遇到过哪些对你有帮助的资源?
编辑
我编辑了问题以强调测试类型的正常行为(忽略任何用于利用多核的并行机制,例如 TPL)