有时候我们想在测试类中使用Springboot的自动注入,但又不想启动整个Application,比如我仅仅想测试DAO层,我们不需要启动Application中的各种定时任务,不想等待缓慢的启动过程等等。
首先,建立测试Application,在test/java...源码目录下:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages = {"com.eee.*.dao.*"})
public class ApplicationDaoTest {
public static void main(String[] args) {
SpringApplication.run(ApplicationDaoTest.class, args);
}
}
上面使用scanBasePackages来限定只扫描dao相关文件,所以不会扫描和自动注入其他的bean,也就不会启动类似定时任务的东西。
然后在Springboot测试类中指定ApplicationDaoTest为启动类
@ActiveProfiles("local")
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {ApplicationDaoTest.class, DataSourceAutoConfiguration.class, MybatisAutoConfiguration.class})
public class ReplenishConfigDaoTest {
@Autowired
ReplenishConfigDao replenishConfigDao;
}
网友评论