gpt4 book ai didi

java - 使用 MockMVC 测试表单时如何将集合设置为参数

转载 作者:行者123 更新时间:2023-12-01 21:26:55 25 4
gpt4 key购买 nike

我想在 Spring Boot 中为我的 Controller 创建一些测试。具体来说,我想创建一个测试来处理表单以添加新项目。该项目属于 Drug 类,并且有一个集合作为

参数:

@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "drug_pet_types", joinColumns = @JoinColumn(name = "drug_id"), inverseJoinColumns =
@JoinColumn(name = "pet_type_id"))
private Set<PetType> petTypes;`

我还有一个用于此表单的 validator ,它不允许任何空/空字段。我的问题是如何将集合分配为mockMvc.perform() 方法的参数。我该用什么来代替???????这是测试:

    @Test
void testProcessCreationFormSuccess() throws Exception {
mockMvc.perform(post("/drugs/new")
.param("name", "Test_Drug")
.param("batchNumber", "255888")
.param("expirationDate", "2023-05-10")
.param("petTypes", "_____?????????____")
)
.andExpect(status().is3xxRedirection());
}```

最佳答案

.param 方法可以接受多个值

public MockHttpServletRequestBuilder param(String name, String... values) {

您可以像这样传递多个值

.param("petTypes", "type1", "type2");

或者你可以传递一个数组

String[] typeArray = {"type1", "type2"};
...
.param("petTypes", typeArray);

关于java - 使用 MockMVC 测试表单时如何将集合设置为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58827537/

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