问题标签 [webtestclient]

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 回答
836 浏览

spring-boot - 带有 MockWebServer 的 WebTestClient 挂起

我有一个使用“spring-boot-starter-webflux”公开rest api的spring boot应用程序。当我的端点之一被调用时,我的应用程序会调用其他休息服务。

我正在尝试使用 WebTestClient 来模拟调用我的客户端和 MockWebServer 来模拟我调用的外部休息服务进行集成测试。

我还覆盖了一个 spring 配置以使用一个“指向”我的应用程序中的 MockWebServer 的 web 客户端。

我看到,当我启动测试时,我的服务器启动,并且 MockWebServer 启动,但是当我调用我的端点时,MockWebServer 似乎“卡住”并且没有响应。

此外,测试"java.lang.IllegalStateException: Timeout on blocking read for 5000 MILLISECONDS以 WebTestClient 结束。

0 投票
1 回答
437 浏览

java - 带有 get() 和 requestBody 的 WebTestClient 不可用

我有一个应用程序,其中一个 api 是用 Get 方法定义的。它还需要请求主体,然后将其映射到 POJO。我正在尝试使用 webTestClient 测试这个控制器。但我没有看到使用 get() 方法发送请求正文的选项。不确定我是否以正确的方式定义我的 webTestClient。

我的控制器看起来像:

我的测试方法:

我在想,因为控制器中允许通过 get 调用将对象绑定到 POJO,所以应该有一些方法可以使用 webTestClient 对其进行测试。

0 投票
1 回答
951 浏览

spring - 如何为 Spring WebTestClient 指定特定的端口号

我有一个本地运行的休息端点,我正在尝试使用 Spring WebClient 与之通信。作为测试目的的第一步,我正在尝试使用 Spring WebTestClient。我的本地休息端点在特定端口上运行(比如说 8068)。我的假设是,由于端口是固定的,我应该使用:

,然后以某种方式在我的代码中指定该端口是什么。但是我不知道该怎么做。它似乎默认为 8080。这是我的代码的重要部分:

该测试预计返回“200 OK”,但返回“404 NOT_FOUND”。错误响应中显示的请求是:

,显然是因为它默认为 8080,而我需要它是 8068。我会感谢任何可以解释正确定义端口的人。谢谢。

0 投票
0 回答
65 浏览

oracle - 使用 oracle Web 服务测试客户端时 SOAP 请求失败

我有一个在 Jdeveloper 上开发的 Web 服务。当我使用邮递员对其进行测试时,它工作正常。但是当我打开 oracle Web 服务测试客户端并尝试以下错误时:

可能是什么原因?

0 投票
0 回答
262 浏览

spring-boot - Junit5 使用 WebTestClient 失败的 Spring 功能

我已经编写了一个 Spring 函数,并且能够运行 junit 来验证函数。但是,如果我尝试运行 junit 来测试与 Http 端点相同的功能,则会引发以下错误。

函数 Bean 如下所示:

失败的 Junit 代码如下所示:

在junit之上运行时,抛出以下错误

有什么建议为什么会出现这个错误?

0 投票
2 回答
1942 浏览

java - WebTestClient 返回 IllegalStateException: block()/blockFirst()/blockLast() 是阻塞的,线程不支持

以下功能:

在运行时工作正常,但是在使用它测试使用它的流时,WebTestClient出现以下错误:

我知道我不应该使用block(),但我别无选择:该函数必须返回 a Boolean(而不是 a Mono<Boolean>)。也许有另一种不使用block().

有没有办法让我WebTestClient不抛出那个错误?

使用 Reactor Core 版本3.4.6

0 投票
1 回答
209 浏览

spring - 在 @SpringBootTest 中自动装配时,WebTestClient 为空

我的 Spring Boot 应用程序在 2.4.2 版本上运行。我正在尝试为用户注册设置集成测试。这个测试类从AbstractIntegrationTest定义一些静态设置的扩展而来。

开始测试时,webTestClientnull. 我尝试添加@AutoConfigureWebTestClient,但问题仍然存在。

你知道这里可能缺少什么吗?

注册IT.java

AbstractIntegrationTest.java

0 投票
1 回答
337 浏览

spring-boot - Spring Boot Web测试客户端模拟多部分文件不起作用

获取异常:

因为它和我的邮递员一起工作得很好。请在此处找到邮递员的附件截图输入图像描述

0 投票
2 回答
1391 浏览

python - Fast api TestClient 发布文件列表

我正在尝试测试获取文件列表的 fastapi 路由器。在使用 JS 的 html 请求中它的工作,但我需要测试它。我正在使用来自 fastapi 的 TestClient,当我尝试发送列表时,我得到状态代码 422,所以我去哪个文档并尝试 dict ,但我只得到 1 个文件的列表。

路由器

测试

谢谢你的帮助

0 投票
1 回答
163 浏览

spring - 存储库插入在带有 WebTestClient 的 SpringBootTest 中不起作用

我正在通过使端点一次反应一个来将 Spring Boot 应用程序转换为使用 webflux。大多数(Spock)测试运行良好,但我在测试中自动连接 JPA 存储库以插入数据的测试却没有。当资源(我们正在测试的)从中读取时,存储库总是空的。我用不同的存储库进行了数十次这样的测试,它们都有相同的问题。

这是一个测试示例(我们正在测试的资源只是 findById 并从存储库返回示例):

当我在控制器中放置断点并执行 findAll() 时,存储库始终为空。

  • 我尝试改用 TestEntityManager.persistAndFlush
  • 我尝试使用 repo.saveAllAndFlush 代替
  • 我尝试过自动装配 ApplicationContext ,然后从中构建 WebTestClient ,但我从来没有让自动装配工作

我目前最好的猜测是测试设置不正确(应用程序上下文?)所以测试中的存储库与应用程序中的存储库不同。