【问题标题】:using @MockBean for a List使用 @MockBean 作为列表
【发布时间】:2018-06-08 08:06:35
【问题描述】:

我有一个使用 @WebMvcTest 的 Spring Boot 测试。我需要更新我的被测控制器,以便它现在接受 Item 列表作为构造函数参数。该元素列表在构造函数中解析,以按照我的预期配置控制器。

在这种情况下,我习惯于使用@MockBean 来模拟依赖项...但是由于构造函数参数是一个列表,因此如果我在列表上应用注释,它就不起作用:我不想模拟列表,我想模拟列表中的 Item 元素..

这里的方法是什么?

谢谢

【问题讨论】:

    标签: java spring-boot-test


    【解决方案1】:

    其实很简单:只要在几个Item上使用@MockBean,比如

    @MockBean
    private Item  mockItem1;
    
    @MockBean
    private Item mockItem2;
    

    这些模拟将被实例化,并作为一个列表注入到控制器构造函数中

    【讨论】:

    • 你测试过这个吗?由于“java.lang.IllegalStateException:重复的模拟定义”,它对我不起作用。我认为您必须在这里使用限定符,例如`@MockBean(name = "name")`。
    • @UNIQUEorn 我已经用你所说的进行了测试,它有效
    猜你喜欢
    • 2019-04-28
    • 2019-02-03
    • 2018-02-04
    • 2020-02-28
    • 2019-05-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多