首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MockMvc测试建议注入WebApplicationContext @BeforeEach测试?

为什么MockMvc测试建议注入WebApplicationContext @BeforeEach测试?
EN

Stack Overflow用户
提问于 2020-12-25 06:29:09
回答 1查看 57关注 0票数 0

因此参考文档建议

代码语言:javascript
复制
    @BeforeEach
    void setup( WebApplicationContext wac) {
        this.mockMvc = MockMvcBuilders.webAppContextSetup( wac )
            .apply( SecurityMockMvcConfigurers.springSecurity() )
            .alwaysDo( print() )
            .build();
    }

为什么不把它作为构造函数注入来做呢?(我还没有试过,我只是假设它不会立即爆炸)

代码语言:javascript
复制
    @Autowired
    MyControllerTest(
        @NonNull WebApplicatonContext wac
    ) {
        this.mockMvc = MockMvcBuilders.webAppContextSetup( wac )
            .apply( SecurityMockMvcConfigurers.springSecurity() )
            .alwaysDo( print() )
            .build();
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-28 23:13:13

SpringExtension中使用JUnit Jupiter时,您是选择构造函数注入、方法注入还是字段注入,这是一个喜好问题。

参考手册中的示例简单地展示了使用@BeforeEach方法的一种方法,因为许多人都熟悉在“之前”方法中执行测试设置。

还可以在测试类构造函数中设置MockMvc实例,如果愿意,还可以将mockMvc字段设置为final

this commit中,我更新了Spring自己的测试套件中的一个测试类,以便在实践中演示其中一些技术。

请注意,如果测试类构造函数接受与ApplicationContext兼容的单个参数,则它不需要使用@Autowired注释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65443714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档