gpt4 book ai didi

c# - 如何在单元测试中为并发建模?

转载 作者:可可西里 更新时间:2023-11-01 07:57:34 25 4
gpt4 key购买 nike

我对单元测试还很陌生,目前正在尝试使用 Visual Studio 的测试工具。

我的问题是如何在这些测试中定义有关并发行为 的断言。例如。上课 BoundedChan<T>实现有界 channel ,我如何指定像

这样的测试
  1. channel.Send 不会阻止”或
  2. “如果超出 channel 的容量,channel.Send 将阻塞直到读取值”

是否有一个优雅的解决方案来编写这些断言?

最佳答案

不幸的是,并发性仍然是单元测试的一个领域,很难轻松构建。这不是一个简单的问题,仍然需要你在测试中实现一些自己的同步和并发逻辑。

对于您提供的示例,可能无法编写最终证明某个方法在特定条件下会或不会阻塞的测试。您可以通过首先创建预期阻塞行为的最坏情况来获得一定程度的信心,然后编写测试以确定是否会发生这种情况。

这是一个 blog article讨论主题;它专注于 NUnit。

关于c# - 如何在单元测试中为并发建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2029509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com