问题标签 [awaitility]

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 投票
2 回答
58 浏览

java - 我如何单元测试java中某个类的特定方法在给定的持续时间内被定期调用

我正在创建一个错误处理程序。这将重复调用一个失败的方法,在给定的持续时间内有一些固定的延迟。

例子。

我有一个与外界交互的服务类。

而且我还有一个用于该服务的错误处理程序,它将重复调用service.doSomething()5 分钟,并有 30 秒的固定延迟。

我如何为这个错误处理程序编写一个单元测试来测试它

服务.doSomething()

在 5 分钟内被反复调用。我知道 mockito 的验证模式提供了不同的选项来验证次数。但在这种情况下,我特别有兴趣测试一个方法在给定的持续时间内被重复调用。我也探索了等待,但不确定它是否有任何可以提供帮助的方法。

非常感谢任何建议:)

谢谢钦坦

0 投票
1 回答
289 浏览

spring-boot - 如何在 Spring Boot 中使用 Awaitility 测试安全端点?

我正在使用 spring boot,我想通过使用MockMvc调用安全端点来断言异步副作用。

我一直在使用Awaitility,但显然在不同线程中执行时模拟的安全上下文会丢失。

我找不到传递上下文的方法,我尝试过SecurityContextHolder.setContext()但没有用,我猜 Spring 的 MockMvc 以不同的方式存储上下文。

GET 将返回 404 一段时间,然后在异步任务完成时返回 200。但是,由于MockUser信息丢失,这将始终返回 403 。

我该如何解决这个问题?

0 投票
0 回答
2476 浏览

java - 在等待 lambda 失败条件下处理内部异常

我有一些使用 Awaitility 库(https://mvnrepository.com/artifact/org.awaitility/awaitility/4.0.2)的功能测试,我需要的是用它运行一些代码并在如果条件失败,直到成功,或者时间超过等待条件的限制。

到目前为止,我有这个:

如果超过 10 秒限制,如果此条件失败,我得到的是:

那么如何显示导致等待条件未成功的真实代码异常,同时还具有在代码失败时运行某些代码的功能?

先感谢您。

0 投票
1 回答
97 浏览

java - 如何在服务员的每次迭代中重新加载页面

我想在每次迭代时重新加载页面Awaitility.await()以检查元素的文本是否已更改。

我的代码:

我想.pollInterval每 5 秒重新加载一次页面,其中:

我怎样才能做到这一点?或者用java建议一个更好的解决方案。谢谢!

0 投票
0 回答
211 浏览

java - 等待不工作 JAVA+APPIUM+CUCUMBER

我目前在使用 java 等待库时遇到了一个奇怪的问题。我正在使用等待等待一分钟并使用以下语句检查一个条件。

奇怪的是,上述语句适用于示例 Appium 测试脚本,但同样不适用于 cucumber+Appium+ java 框架并引发以下错误。

0 投票
1 回答
331 浏览

testing - Awaitility 的 `during` 和 `atMost` 周围的不可预测的行为

在我测试 Kafka 时,我最终遇到了一些关于 Awaitility 的问题。目标是测试 Kafka 主题在指定时间内不包含新记录。这是我测试的简化版,但它显示了问题。我希望 ConditionTimeoutException 在这种情况下不会抛出。但确实如此。

我将atMost超时增加到 5000 + pollInterval -> 5100 但仍然以异常结束。在我的本地机器上抛出异常被停止关闭atMost超时值 5170-5180。我应该记住一些事情吗?还是测试不正确?

0 投票
1 回答
216 浏览

java - 具有等待性的 ReaciveCrudRepository

编写测试,但不确定如何重写此代码:

反应一:

笔记:

第一个 findById() 签名是:可选的 findById(Long id)

第二个 findById() 签名是:Mono findById(ID id)

0 投票
3 回答
46 浏览

javascript - 控制台语句不等待 javascript 中的函数返回

我正在尝试将变量初始化为函数x返回的值showData。这是我的代码:

这是showData功能:

但是,控制台显示undefined. 如果我添加console.log(data)showData函数中,我可以看到我能够成功地从数据库中获取数据。

我知道由于 JavaScript 的同步属性,console.log(x)它不等待执行。showData()如何从函数中获取值并将其记录到控制台,而不是获取undefined

0 投票
2 回答
814 浏览

java - 使用等待来确定没有发生的事情

有没有办法使用 Awaitility 来断言没有任何改变?我想验证一个主题没有被写入,但是因为没有状态变化,Awaitility 不喜欢这样。例如,此代码给出以下错误。谢谢

0 投票
0 回答
106 浏览

kotlin - 如何确保异步测试不会干扰另一个?

我想对我的函数的行为进行单元测试,该函数使用对外部 API 的异步调用(使用 WebClient,但我怀疑它是否相关)。函数流程的简化版本是这样的

因此,在我的测试文件中,我有 2 个测试,分别测试两个 if 分支。

在满足条件的测试中,我使用 MockWebServer 模拟了外部 API 调用,然后使用Awaitility等待调用结束

在另一项测试中,我检查是否未进行此调用: verify (exactly = 0) { externalApi.post() }

当我分别运行这两个测试时,它们都可以顺利运行。当我同时运行它们时会出现问题(我运行文件的所有测试,方式相同maven test)。然后,我的第二个测试失败了,可能是因为它看到了另一个测试中的调用。

我不熟悉线程中的执行上下文,所以我对正在发生的事情有一个浅薄的了解

我尝试过的

  • 锁定我的测试函数,将其锁定在 @BeforeEach 并在 @AfterEach 解锁,以便它们按顺序运行
  • 在我的代码中用协程替换线程
  • 天真地将 Thread.sleep() 放在我的测试中以强制它等待

这些都没有奏效,我很茫然。任何人都可以帮忙吗?