【发布时间】:2020-04-03 05:03:34
【问题描述】:
我创建了一个 Spring Boot Java 库,其中包含一组执行某些功能的实用程序。然后可以在需要其实用程序的多个应用程序中使用该库。该库被设计为 Spring Boot 应用程序,以允许将这些实用程序注入应用程序上下文中。
现在我希望对其中一个实用程序执行 JUnit 测试,以确保它正常工作。但是,由于此应用程序基本上是实用程序的集合,而不是独立的应用程序,因此它没有主类或使用@SpringBootApplication 注释的主方法。现在,当我运行 JUnit 测试时,它出现了一个错误。
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...)
是否可以测试这个 Java 库,或者我们应该只在将使用这个库的应用程序中编写测试用例?
【问题讨论】:
-
我不这么认为。如果它只是一个库,则只能运行单元测试。集成测试是应用程序的责任。或者您可以创建一个使用您的代码的演示应用程序,它是一个特定于您的代码的 Spring Boot 应用程序,并在那里编写集成测试。
-
看看 Bramnik 提到的 spring.factories。看到这个答案->stackoverflow.com/questions/32107610/… 和这个博客blog.pchudzik.com/201903/spring-factories
标签: java spring spring-boot junit junit5