java - 如何在一个类中为不同的测试获取不同的上下文?

标签 java spring spring-boot

我有以下测试类:

@RunWith(SpringRunner.class)
@ContextConfiguration(classes = TestClass.Config.class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
public class TestClass {
    @Autowired
    private MyClass myClass;

    @Test
    public void test1() {
        myClass.run();   // this is mock
    }

    @Test
    public void test2() {
        myClass.run();   // Need real context
    }

    @Configuration
    static class Config {

        @Bean
        MyClass myClass() {
            return mock(MyClass.class);
        }
    }
}

如何在不同的测试方法中将测试上下文替换为真实上下文?

最佳答案

这是另一层测试。根据经验,将它们分开。 您应该创建具有真实上下文的单独测试类。它应该命名为 TestClassIntegrationTest(例如)。真实的上下文测试可能非常慢,同时它们应该作为提交前的最后一次检查运行。

关于java - 如何在一个类中为不同的测试获取不同的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57888531/

相关文章:

java - Hadoop:java.lang.Exception:java.lang.RuntimeException:配置对象时出错

java - 使用 Java 重命名文件

java - 为什么这个正则表达式在 FreeMarker 中失败

spring - 订单 <表单 :error path ="*"/> messages so their order isn't random

java - Spring Boot 应用程序卡在 : Initializing Spring DispatcherServlet 'dispatcherServlet'

java - Jackson JsonParseExceptionMapper 和 JsonMappingExceptionMapper 阴影自定义映射器

java - AWS ElasticSearch 2.3 Java HTTP 批量 API

java - 使用 Spring Boot 和并行流发送电子邮件

java - 如何在多模块项目中使用 JUnit5 和 SpringBoot2 通过 gradle 而不是 intelliJ 运行测试

java - Spring无法加载xml配置文件