问题标签 [asynctest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
176 浏览

python-3.x - asynctest.TestCase.setUp 如何被异步和同步方法覆盖?

我正在编写一个单元测试,它继承自asynctest.TestCase并希望创建一些在每个测试用例之前执行异步的 mixin:setUp

我看到的问题是 Mixin1 最终调用asynctest.TestCase.setUp了一个非异步方法,我们得到:

显然,我可以更改Mixin1为对 进行阻塞调用setUp,但是如果我引入第二个异步 mixin,它将失败。

我最终像这样编写了所有设置调用,但感觉必须有更好的方法:

有没有更好的方法来链接 setUp 调用?

0 投票
1 回答
2849 浏览

javascript - 为什么 jest.useFakeTimers 不能与 RxJs Observable 延迟一起工作

我想知道为什么jest.useFakeTimers使用setTimeout但不使用 RxJs 的延迟运算符:

在此处输入图像描述

仅供参考:使用 20 或 2000 作为参数 forjest.runTimersToTime没有区别。使用jest.runAllTimers()使测试过去

0 投票
3 回答
9924 浏览

python - 如何模拟 aiohttp.client.ClientSession.get 异步上下文管理器

我在模拟 aiohttp.client.ClientSession.get 上下文管理器时遇到了一些麻烦。我找到了一些文章,这里有一个似乎有效的例子:文章 1

所以我要测试的代码:

async_app.py

并测试:

test_async_app.py

当我运行测试时,我收到一个错误:

所以我尝试调试 - 这是我可以看到的:

那么模拟异步上下文管理器的正确方法是什么?

0 投票
1 回答
300 浏览

python - 使用 asynctest 模拟 aiohttp ClientSession contextmanager

我有以下异步功能:

试图测试它,但仍然没有找到方法。

但没有按我的意愿工作。任何有关如何测试上下文管理器的帮助将不胜感激。

0 投票
1 回答
814 浏览

mocking - 使用上下文管理器测试异步协程

我一直在尝试通过 Python 3.7 中的 aiobotocore 测试上下文管理的异步协程。我一直在使用 asynctest 包来获取包含的 MagicMock ,它具有 和 的魔术方法,__aenter__以及__aexit__一个自定义模拟工厂,该工厂返回一个 MagicMock 对象作为等待协程的结果,但是我在上下文管理器中遇到了协程的问题。我试图模拟的功能:

稍后在代码中使用输入参数调用它,我的测试代码是:

然而,当我运行它时,我收到了这个错误消息:

在我看来,我需要 asynctest magicmock 来处理上下文管理器,但随后我需要我制作的自定义模拟来返回协程。我知道有一个带有 asynctest 的 CoroutineMock 但我无法让它在这种情况下工作,我将如何解决这个问题?

0 投票
0 回答
357 浏览

pytest - Python asynctest 模拟补丁装饰器溢出到后续测试中

我正在尝试测试异步功能。为此,我正在使用pytest-asyncioand asynctest。我需要检查在我正在测试的函数中使用的函数被调用了多少次。为此,我正在使用aynsctest.mock.patch(). 我的测试文件如下所示:

如果我单独运行测试用例,它们就会通过。但是,当我运行整个模块时,要运行的第二个测试用例会失败 - 无论它们运行的​​顺序如何。我怀疑这是因为第一个测试用例的模拟仍然影响要运行的第二个测试用例。

我在这里做错了什么?

0 投票
1 回答
641 浏览

rust - rust 中的异步测试 - 如何通过侧线程或恐慌使测试失败

我的库产生了一个侧线程,我正在尝试为它编写单元测试。如果图书馆/模拟恐慌,我想通过测试。

我在嘲笑mockall

我的库代码是这样的:

可重现的案例:

0 投票
1 回答
117 浏览

python - 地址已在 python 的异步客户端测试中使用

我有一个关于异步客户端测试的问题。这是我的测试代码

我可以TestSocketClient单独运行测试,它们将单独通过。但是当我一起运行测试套件时pytest -n auto,后一个测试用例会引发error while attempting to bind on address ('0.0.0.0', 2056): address already in use。我的问题是如何在不解决分配问题的情况下使测试套件通过,以便它们可以在 CI 过程中成功运行。如果在编写异步测试中有一些更有价值的建议,我将不胜感激(例如,如果我只想测试客户端想要发送到服务器的请求,我应该断言什么?我应该断言收到的消息服务器端或只是assert_called_once在客户端编写类似的东西)。提前致谢!

更新:

我终于在不同的测试中解决了端口增量的问题,如下所示

希望这会有所帮助!

0 投票
3 回答
423 浏览

scala - 如何在 Scalatest 中为异步套件设置超时?

考虑以下单元测试示例:

问题

如果resultFuture 永远不会完成,那么测试套件也永远不会完成。据我了解,这是由于SerialExecutionContext实施方式所致。

问题

有没有什么“好”的方法可以为这种测试设置超时,这样如果未来没有完成,测试就会失败,而不是永远阻塞整个测试套件?


更新和澄清

虽然解决方案https://stackoverflow.com/a/65746143/96766https://stackoverflow.com/a/65749840/96766(由 @matthias-berndt 和 @tomer-shetah 发布)适用于线程阻塞的情况,这不是我要找的。

让我对这个问题做一个重要的澄清。在我的情况下,未来最终不会完成,但永远不会完成。例如,当 aFuture是从Promise从未解析的(没有人调用它success也没有人调用failure它)中获得时。在这种情况下,建议的解决方案仍然会无限阻塞。

有没有一种方法可以解决这个问题,AsyncSpec而无需使用真正的基于池的执行上下文和Await-ing 未来?

0 投票
1 回答
329 浏览

python-3.x - 属性错误:“nonetype”对象没有用于异步等待的属性“空”

如何为 y() 编写测试方法?在模拟 x() 后,出现此错误:attribute error: 'nonetype' object has no attribute 'empty'

test_y.py:

x_mock()基本上是创建一个数据框