首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MockMvc保持为空

MockMvc保持为空
EN

Stack Overflow用户
提问于 2019-08-20 14:53:31
回答 2查看 454关注 0票数 0

我想执行一个集成测试。我目前的方法是:

代码语言:javascript
运行
复制
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = Application.class)
@AutoConfigureMockMvc
@TestPropertySource(locations = "classpath: application-test.yml")
public class UserControllerIntegrationTest {

    @Autowired
    MockMvc mockMvc;

    @Test
    @DisplayName(" sda")
    public void test1(){

        System.out.println();
    }

}

我放置了@AutoConfigureMockMvc,但MockMvc对象仍然为空

EN

回答 2

Stack Overflow用户

发布于 2019-08-20 16:01:52

我真的不明白这样测试的目的是什么,让我解释一下……

通常,MockMvc用于测试应用程序的web层。

像DAO这样的其他东西无论如何都不应该从控制器中引用(不是吗?;) ),但一般来说,模拟这些依赖关系的相同模式在这里也适用。

从技术上讲,它是这样完成的: web mvc测试(当正确注释时)不会加载整个应用程序上下文,而是加载它的一个“切片”--只加载与web层相关的bean。

现在,@SpringBootTest注释做了一些不同的事情。它是专门为spring boot应用程序设计的,可以模拟整个spring应用程序的负载。在我的脑海中(也许其他同事会丰富这个列表),它“添加”到常规的应用程序上下文中:

Bean和configurations的

  • 属性configuration Bean(自动配置特定于结构的扫描

归根结底,它允许在一些特定的配置或整个应用程序之外启动Spring Boot Test,它与web层无关,只有

所以,我不明白的是,这里到底要测试什么。如果你的目标是测试web层,那么你不必使用Spring Boot注解(除了我已经解释过的,spring boot测试需要更多的时间来加载)

如果您的目标是测试整个微服务,或者有时是它的一个特定部分,那么您可以使用@SpringBootTest`注释。

票数 1
EN

Stack Overflow用户

发布于 2019-08-20 15:45:27

如果你用@RunWith(SpringRunner.class)注释你的测试,你的mockMvc将不会是空的。

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

https://stackoverflow.com/questions/57568119

复制
相关文章

相似问题

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