Spring 测试:如何将模型“传递”到控制器 post 方法中

我有

我正在 Spring Boot 中工作,并且正在尝试为如下所示的控制器编写集成测试:

public String pagerequestSubmit(@ModelAttribute Pagerequest pagerequest, Model model) {
...
 }

现在我正在尝试为这个控制器编写一个集成测试,如下所示:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ContextConfiguration(classes=PageAnalyzerInSpringApplication.class)
public class PagerequestControllerIntegrationTest {

@Autowired
PagerequestController pagerequestController;

@Test
public void testHappyPath() {


    Pagerequest mockPageRequest = new Pagerequest();
    mockPageRequest.setUrl("https://www.somedomain.com/");
    ....

    String outcome = pagerequestController.pagerequestSubmit(mockPageRequest);

    assertThat(outcome, is(equalTo("result")));

}

我在执行 'mock pagerequest' 并将其传递到 post 方法时没有任何问题,所以我做到了,但上述测试不起作用,因为我得到:

“PagerequestController 类型中的 pagerequestSubmit(Pagerequest, Model) 方法不适用于参数 (Pagerequest)”

这是有道理的,因为我没有传入任何 Model 类型的参数,而且我完全被困在如何做到这一点上。

我试图实例化一个模型,它不起作用,创建一个假模型,它也不起作用,并传入一个空的模型变量,这至少让测试运行,但随后抛出空控制器中使用模型时的指针异常。

关于如何解决这个问题的任何想法?

提前致谢!

普拉迪普

pagerequestSubmit(@ModelAttribute Pagerequest pagerequest, Model model)接受两个参数,一个是 pagerequest,另一个是模型,但在您的测试中,您只传递 pagerequest 。您还需要传递模型对象。这只是您的测试类中的错误方法签名。创建模型对象的模拟并将其粘贴到您的代码中

 @Mock
    private Model model;

 String outcome = pagerequestController.pagerequestSubmit(mockPageRequest,model);
 assertThat(outcome, is(equalTo("result")));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

做junit时如何在Spring MVC控制器中传递参数到post方法?

来自分类Dev

如何将列表从控制器传递到jsp并在Spring MVC中的javascript中对其进行迭代

来自分类Dev

如何将对象从控制器传递到 Spring Batch 中

来自分类Dev

如何通过Post方法将数据从Ajax传递到laravel 5.2控制器

来自分类Dev

如何通过Post方法将数据从Ajax传递到laravel 5.2控制器

来自分类Dev

如何将值从模型中的方法传递到另一个方法,或将控制器中的控制器传递给Rails

来自分类Dev

如何将数据从模型传递到 Laravel 中的控制器

来自分类Dev

使用多种 POST 方法将数据从视图传递到控制器?

来自分类Dev

Spring Boot 应用程序 - 如何根据当前对象将数据(列表中的列表)从控制器传递到 Thymeleaf?

来自分类Dev

表单的 post 方法不会返回到 Spring Securiry 登录身份验证中的控制器

来自分类Dev

将POJO传递到Spring MVC控制器的最佳方法

来自分类Dev

将POJO传递到Spring MVC控制器的最佳方法

来自分类Dev

如何将数据从控制器方法传递到 Opencart 2 中查看

来自分类Dev

如何在GET和POST请求的Spring控制器方法之间共享信息?

来自分类Dev

将jQuery post中的参数传递给控制器中的方法

来自分类Dev

如何将值从控制器中的模型传递给angularjs中的其他子控制器?

来自分类Dev

将值从模型传递到Codeigniter中的控制器

来自分类Dev

当不在模型中时如何将附加值传递给控制器?

来自分类Dev

如何将数据传递到导航控制器中嵌入的集合视图控制器

来自分类Dev

如何将新创建的ID从订单控制器传递到MVC中的订单项控制器?

来自分类Dev

如何将xml从控制器传递到mvc4中的其他控制器

来自分类Dev

Spring如何将所有请求映射到单个控制器方法?

来自分类Dev

JUnit测试不是Spring控制器中的触发方法

来自分类Dev

这种在Spring中处理POST请求的REST方法如何工作?

来自分类Dev

这种在Spring中处理POST请求的REST方法如何工作?

来自分类Dev

如何将函数中的变量传递到控制器中?

来自分类Dev

Spring MVC:将模型作为参数传递给控制器方法VS显式实例化它

来自分类Dev

如何将属性添加到Spring控制器的http请求中?

来自分类Dev

如何将数组从窗体传递到控制器方法?

Related 相关文章

  1. 1

    做junit时如何在Spring MVC控制器中传递参数到post方法?

  2. 2

    如何将列表从控制器传递到jsp并在Spring MVC中的javascript中对其进行迭代

  3. 3

    如何将对象从控制器传递到 Spring Batch 中

  4. 4

    如何通过Post方法将数据从Ajax传递到laravel 5.2控制器

  5. 5

    如何通过Post方法将数据从Ajax传递到laravel 5.2控制器

  6. 6

    如何将值从模型中的方法传递到另一个方法,或将控制器中的控制器传递给Rails

  7. 7

    如何将数据从模型传递到 Laravel 中的控制器

  8. 8

    使用多种 POST 方法将数据从视图传递到控制器?

  9. 9

    Spring Boot 应用程序 - 如何根据当前对象将数据(列表中的列表)从控制器传递到 Thymeleaf?

  10. 10

    表单的 post 方法不会返回到 Spring Securiry 登录身份验证中的控制器

  11. 11

    将POJO传递到Spring MVC控制器的最佳方法

  12. 12

    将POJO传递到Spring MVC控制器的最佳方法

  13. 13

    如何将数据从控制器方法传递到 Opencart 2 中查看

  14. 14

    如何在GET和POST请求的Spring控制器方法之间共享信息?

  15. 15

    将jQuery post中的参数传递给控制器中的方法

  16. 16

    如何将值从控制器中的模型传递给angularjs中的其他子控制器?

  17. 17

    将值从模型传递到Codeigniter中的控制器

  18. 18

    当不在模型中时如何将附加值传递给控制器?

  19. 19

    如何将数据传递到导航控制器中嵌入的集合视图控制器

  20. 20

    如何将新创建的ID从订单控制器传递到MVC中的订单项控制器?

  21. 21

    如何将xml从控制器传递到mvc4中的其他控制器

  22. 22

    Spring如何将所有请求映射到单个控制器方法?

  23. 23

    JUnit测试不是Spring控制器中的触发方法

  24. 24

    这种在Spring中处理POST请求的REST方法如何工作?

  25. 25

    这种在Spring中处理POST请求的REST方法如何工作?

  26. 26

    如何将函数中的变量传递到控制器中?

  27. 27

    Spring MVC:将模型作为参数传递给控制器方法VS显式实例化它

  28. 28

    如何将属性添加到Spring控制器的http请求中?

  29. 29

    如何将数组从窗体传递到控制器方法?

热门标签

归档