2 回答
TA贡献1847条经验 获得超11个赞
我切换到 JUnit 5 并使它有点工作......所以如果你想测试数据库的东西:
@DataMongoTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles({"default", "test"})
class BasicMongoTest { ... }
允许您自动装配所有存储库和 mongo 模板
使用 aplicaton.yml 配置进行初始化
不初始化或配置拦截器
如果您的类路径中有一个类,则完整的应用程序上下文测试@SpringBootApplication(可以是测试上下文中的空测试 main)
@SpringBootTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles({"default", "test"})
public class FullContextTest { ... }
使用所有配置和 bean 初始化完整上下文
如果没有必要,就不应该这样做,因为它会加载所有应用程序上下文,并且有点违背了单元测试仅激活所需内容的目的。
仅测试特定组件和配置:
@SpringBootTest(classes = {Config1.class, Component1.class})
@EnableConfigurationProperties
@ExtendWith(SpringExtension.class)
@ActiveProfiles({"default", "test"})
public class SpecificComponentsTest { ... }
仅使用 Config1 和 Component1 类初始化上下文。Component1 和 Config1 中的所有 bean 都可以自动装配。
TA贡献1811条经验 获得超4个赞
我已经解决了在根测试包路径中添加一个SpringAppConfiguration类的问题
@SpringBootConfiguration
@ComponentScan
@EnableAutoConfiguration
public class SpringAppConfiguration {
public static void main(String[] args) {
SpringApplication.run(SpringAppConfiguration.class, args);
}
}
添加回答
举报