Spring MockMvc-请求参数列表

2023-12-29

我正在尝试使用 MockMvc 测试几个控制器端点,但遇到了一些麻烦(请友善,我是新手......)。使用字符串作为参数的简单端点工作正常,但使用字符串列表的稍微复杂的端点则不满意并抛出异常;有人能指出我做错了什么吗?

@RestController
@RequestMapping("/bleh")
public class Controller
{
    @Autowired
    private DataService dataService

    @RequestMapping(value = "/simple", method = RequestMethod.GET)
    public String simple(String name) 
    { 
        return dataService.getSomeData(name) 
    }

    @RequestMapping(value = "/complicated", method = RequestMethod.GET)
    public String complex(List<String> names)
    { 
        return dataService.getSomeOtherData(names) 
    }
}

-

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class HealthControllerTests extends Specification
{
    def dataServiceMock;
    def testController;
    def mockMvc;


    def setup(){
        dataServiceMock = Mock(DataService)
        dataServiceMock.getSomeData >> "blaah"
        testController = new Controller(dataService: dataServiceMock)
        mockMvc = MockMvcBuilders.standaloneSetup(testController).build();
    }

    def "working test"
        when:
        def response = MockMvc.perform(get("/simple").param("name", "tim"))
                .andReturn()
                .getResponse();

        then:
        response.status == OK.value();
        response.contentAsString == "blaah"

    def "unhappy test"
        when:
        def response = MockMvc.perform(get("/complicated").param("names", new ArrayList<>()))
            .andReturn()
            .getResponse();

        then:
        response.status == OK.value()


}

抛出这个:

No signature of method: org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder.param() is applicable for argument types: (java.lang.String, java.util.ArrayList) values: [names, []]. Possible solutions: param(java.lang.String, [Ljava.lang.String;), params(org.springframework.util.MultiValueMap), wait(), grep(), any(), putAt(java.lang.String, java.lang.Object)])

不支持 ArrayList,但您可以执行以下操作

def "complicated test"
    when:
    def response = MockMvc.perform(get("/complicated").param("names", "bob", "margret"))
        .andReturn()
        .getResponse();

    then:
    response.status == OK.value()

def "another complicated test"
        when:
        def response = MockMvc.perform(get("/complicated").param("names", new String[]{"bob", "margret"}))
            .andReturn()
            .getResponse();

        then:
        response.status == OK.value()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring MockMvc-请求参数列表 的相关文章

  • 将json URL导入到java并使用jackson库解析它

    我正在尝试读取 java 中的 json 链接并解析它 以便我可以将它用于其他事务 但问题是我收到错误 我真的不知道该如何处理它们 这是代码 package weather data import weather data import c
  • 如何在 Spring Boot 1.4 中自定义 Jackson

    我一直无法找到如何使用的示例Jackson2ObjectMapperBuilderCustomizer java在spring boot 1 4中自定义Jackson的功能 boot 1 4 中自定义 Jackson 的 doco http
  • 使用 Java NIO 直接访问 Windows 磁盘

    我正在使用一个使用 Java NIO 的库来直接将文件映射到内存 但我在直接读取磁盘时遇到问题 I can直接使用读取磁盘FileInputStream与 UNC 合作 例如 File disk new File PhysicalDrive
  • Spring 可以理解 @Inject 替换 Weld 作为 JSR-299 实现吗?

    我从几个网页中注意到 Spring 3 0 显然支持来自 JSR 330 的 Inject 由于我们确实希望在 Web 应用程序和独立应用程序的库中使用 JSR 299 语法进行依赖项注入 并且有 Weld 的替代方案 因此如果 Sprin
  • com.google.gwt.dev.jjs.InternalCompilerException:访问期间出现意外错误

    我在使用版本 2 6 0 编译 gwt 应用程序时遇到以下错误 最初我用 gwt 版本 2 6 1 的 maven 编译它 然后尝试通过版本 2 6 0 的 eclipse 编译它 跟版本兼容有关系吗 com google gwt dev
  • 使用java在mysql中插入带有\\的文件路径

    我正在使用java制作一个独立的应用程序 并且我需要插入用户从文件选择器中选择的图像的路径 我正在获取文件的路径 但是当我将其存储在数据库 mysql 中时 它不会存储 所以当我检索该路径时 该文件不会显示 如何存储文件的路径 这样就可以使
  • Maven:缺少工件 org.springframework:spring:jar:4.2.6

    我在 SpringToolSuite 中有一个动态 Web 项目 它被转换为 Maven 项目 我遇到问题 缺少工件 org springframework spring jar 4 2 6 我已经尝试清理 重建和运行该项目 它给 读取文件
  • Spring @Transactional 并发

    class MyService 公共无效a 同步 某个键 b Transactional 传播 传播 REQUIRES NEW 公共无效b 数据库工作吗 除非您使用代码编织 否则这是行不通的 Spring处理事务的默认方式是通过AOP代理
  • 使用 viewModel 从 ChildFragment 访问 ParentFragment 中的 ViewModel

    我正在尝试访问ParentViewModel for ParentFragment from ChildFragment using viewModels 这是我的代码 In ParentFragment class ParentFragm
  • 用dagger 2查看依赖注入

    我有一个自定义视图扩展TextView 我应该在哪里调用我的组件来注入视图 component inject customTextView 因此 我发现我需要在自定义视图的构造函数中添加注入 在所有视图中 或者使一个调用另一个 Exampl
  • 使用 java.nio.file.Paths 接口时缺少方案(IllegalArgumentException)

    这是一个非常简单的java问题 我在 Linux 系统上使用 Java 8 和 eclipse kepler 我一直在尝试尝试NIO 2 我的代码是 package lucasTest import java io IOException
  • 根据结果​​重试方法(而不是异常)

    我有一个具有以下签名的方法 public Optional
  • 获取运行时生成的类的字节

    我正在使用一个 Java 框架 该框架使用自定义类加载器在运行时生成一些 代理 类 我想为任何这样的类获取自定义 ClassLoader 从 loadClass 返回的与该类对应的原始字节数组 这可能吗 我知道 如果一个类作为资源存在 那么
  • Spring Data elasticsearch @Query 注解嵌套对象

    我有两节课 Document public class PracticeQuestion private int userId private List
  • Java 通用问题

    下面的代码可以编译 但如果我取消注释行 它不会编译 我很困惑为什么 HashMap 确实扩展了 AbstractMap 并且声明映射的第一行可以正常编译 import java util AbstractMap import java ut
  • 在 Java Jersey 2 JAX-RS 中初始化单例

    我是泽西岛 2 22 2 的新手 请耐心等待 我正在创建一个与 LDAP 服务器交互的 REST 服务 用于存储 删除和检索用户数据 该服务通过执行加密 解密充当安全中介 在使用 REST 服务之前必须进行相当多的初始化 并且我只想执行此初
  • Jersey bean 验证 ParameterNameProvider

    我正在阅读关于泽西岛的文档Bean验证 https jersey java net documentation latest bean validation html The ParameterNameProvider示例显示如何定义方法的
  • 如何使用SAXReader解析GPX文件?

    我正在尝试解析GPX file http en wikipedia org wiki GPS eXchange Format 我用 JDOM 尝试过 但效果不太好 SAXBuilder builder new SAXBuilder Docu
  • 如何使用 JRE 部署 JavaFX 11 桌面应用程序

    我有一个 JavaFX JDK 8 桌面业务应用程序 它使用 Java Web Start 进行部署 用户安装了 Java 8 只需访问 URL 我的 AWS Linux 服务器上的公共 URL 即可下载 启动应用程序 使用 Web Sta
  • 在私有 guice 模块中公开 Map

    我在 guice 中有一个 PrivateModule 我想从该模块公开一个 Map public class TestInjectionModule extends PrivateModule expose Map class annoa

随机推荐

  • .NET webservice - 快速确认,但继续在后台处理

    我正在构建一个将由供应商的应用程序使用的 NET Web 服务 但我不确定如何完成以下任务 供应商将致电我的网络服务并提供一些信息 但希望快速返回确认信息 仅说明我收到了他们的信息 他们不关心我用它做什么 也不想确认我已经完成处理 我传递的
  • 重新排序数组

    比如说 我有一个如下所示的数组 var playlist artist Herbie Hancock title Thrust artist Lalo Schifrin title Shifting Gears artist Faze O
  • 将 Bladejs 与 Meteor 结合使用

    我最近将节点刀片智能包添加到我的流星中 并且静态内容显示良好 但是 我无法使用任何模板变量 在我安装 Blade 之前 模板变量与车把配合得很好 有人知道我做错了什么吗 控制台输出 ReferenceError player is not
  • 是否可以将 MKS Integrity 存储库导入 git 中?

    我只需要源树及其历史记录 我现在不关心需求 问题 我用命令行玩了一下 看看是否可以获得主干和一些开发路径的更改包列表 我认为应该可以为每个更改包提取差异 并使用它来重放自 git 中第一次提交以来的所有更改 像这样的东西 获取第一个提交并将
  • !clrstack -p 不给出调用堆栈中方法的参数值

    我们正在尝试使用 Windbg 分析 w3wp 内存转储 我们发现 w3wp 进程由于堆栈溢出而崩溃 我加载了 psscor4 dll 并通过发出 clrstack 获取了调用堆栈 但我也想知道传递给方法的参数 如果我发出 clrstack
  • 从自定义视图启动 AsyncTask 的最佳实践

    产生耗时的计算线程是很常见的 稍后我们需要更新Activity or Fragment与计算结果 我一直遵循以下准则 到目前为止 它对我来说效果很好 AsyncTask需要onPostExecute UI Fragment Use setR
  • Angular-ui-bootstrap 模式和打字稿

    我正在将 ngDialog 与 Angular 和 Typescript 一起使用 但是我正在尝试更改为 Angular ui boostrap 模式 因为它看起来更酷且更易于使用 我有一个场景 我使用例如 AddressListContr
  • WebView.loadUrl() 中的 Android JS

    我想在 WebView 中加载网页 但删除网页的部分内容 因此 我创建了一个自定义 WebViewClient 并且 在 onPageFinished 中 我执行了一些 javascript 来删除一些元素 然后 我使 WebView 可见
  • -ms-transform 不适用于 IE10(及以下版本)中的表头组 (thead)

    谁能帮我找到一种方法让 ms transform 在表头上工作 上下文是 我正在重新定位标题 使用 Javascript 和 CSS 转换 以使其在用户向下滚动到标题不再可见的位置时粘在屏幕顶部 并且使用如果没有可见的列标题 我可能也无法读
  • Javascript 中数组的每个元素的 toString() [重复]

    这个问题在这里已经有答案了 我想查找一个元素 可能是字符串或数字 是否位于数组内 数组是test元素是value 到目前为止一切顺利 我有这个代码 function compare value test We need to stringi
  • 是否可以在 FromURI 和 FromBody 上创建参数绑定?

    我查找了 ASP NET Web API 参数绑定的文档 它们似乎只有 fromURI 和 fromBody 是否可以两者兼得 这是一些背景信息 我正在创建一个 webhook 接收器 处理程序 我可以控制哪个 URL 是 webhook
  • 如何在选择下拉框中应用填充?

    我有两种类型的输入 Aselect下拉框和常规input On the input 我添加了一个padding 10px 这使它看起来很大 问题是 一旦我将选择框放在它旁边 它们的高度就不同了 如何将填充应用于选择 或使其与选择的高度相同i
  • 如何列出已停止的 Docker 容器中的文件

    这个问题 https stackoverflow com questions 34429757 how to copy file to stopped docker container演示如何从已停止的容器中复制文件 这要求我知道文件的完整
  • Swift SKShapeNode shapeWithSplinePoints

    我正在尝试为要遵循的节点创建 CGPath 但是当我尝试使用 608 hd best practices for building spritekit games 的操作和常量幻灯片中定义的 SKShapeNode 时 我收到错误调用中的额
  • Django 模型是否知道它是从哪个数据库加载的以及如何访问此信息?

    例如 我们有这样的代码 for book in myapp models Book objects using alternate database all book save 将书籍保存到 alternate database 或到 de
  • 如何根据另一列中的值将函数应用于 Pandas 中的列?

    预先感谢您的阅读 我有一个数据框 df pd DataFrame Words Sec level Sec levels Sec level Und ba Pro conf ProAbb cth Conflict None None None
  • uitableview cellforrowatindexpath 未调用,但调用了节中的行数

    在我的表视图中 没有调用section方法中的行 并且它返回值17 但是没有调用cellforrowatindexpath 我已在此方法的第一行中放置了断点 但在调试时从未显示这一点 我已遵循tableviewdelegate和数据源 以及
  • 部分视图中的 ASP.NET MVC 自定义类型列表

    我有一个采用分页列表的视图 如书呆子晚餐示例中所示 该页面按预期工作 现在我添加了一个采用相同 PagulatedList 的部分视图 并在第一个视图中调用 RnederPartial ASP NET 抛出一个我似乎无法解决的异常 分页列表
  • Android:共享图像意图无法与 Facebook 配合使用?

    您好 我有以下代码来共享图像 Share Intent share new Intent Intent ACTION SEND share setType image jpeg Uri uri Uri parse getFilesDir F
  • Spring MockMvc-请求参数列表

    我正在尝试使用 MockMvc 测试几个控制器端点 但遇到了一些麻烦 请友善 我是新手 使用字符串作为参数的简单端点工作正常 但使用字符串列表的稍微复杂的端点则不满意并抛出异常 有人能指出我做错了什么吗 RestController Req