【发布时间】:2019-04-24 15:34:15
【问题描述】:
我正在使用 spring-boot-1.5。 单元测试期间有没有办法在src/test/resources中加载application.properties?我知道如何使用集成测试来加载它,我们可以使用 @SpringBootTest 或 @ContextConfiguration 但我想在单元测试期间使用 application.properties。
让我解释一下我的场景,
@SpringBootApplication(exclude = { MongoAutoConfiguration.class, MongoDataAutoConfiguration.class })
@EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL)
public class BookBackendApplication {
public static void main(String[] args) {
SpringApplication.run(BookBackendApplication.class, args);
}
}
@Service
public class BookService {
@Value("${book-list:ACTIVE}")
private List<String> bookList = new ArrayList<>();
@Value("${book-status:PURCHASING}")
private String bookStatus;
public BookResponse purchaseBook(BookRequest bookRequest) {
if(bookRequest.getStatus().equals(bookStatus)) { //Here getting NPE while executing unit test
....
}
}
}
单元测试
@RunWith(SpringRunner.class)
public class BookServiceTest {
@InjectMocks
private BookService bookService;
@Test
public void testBookActivate() throws IOException {
BookResponse bookResponse = bookService.purchaseBook(bookRequest);
...
}
}
运行此单元测试时未加载属性,因此在 BookService.java 中获取 NPE。运行单元测试时有什么方法可以加载 src/test/resource/application.properties 吗?
任何指点或帮助都会非常可观。
【问题讨论】:
标签: java spring unit-testing spring-boot junit