2017-02-21 23 views
5

Tôi có một ứng dụng khởi động mùa xuân, nó có một vài lớp @Entity@RepositoryRestResource các giao diện repositort cho chúng. Bây giờ tôi muốn viết một số bài kiểm tra, nơi tôi có thể kiểm tra rằng tôi có thể thêm một bản ghi mới vào cơ sở dữ liệu của tôi bằng cách sử dụng các kho lưu trữ đó, nhưng tôi không muốn sử dụng cơ sở dữ liệu MySQL đã cấu hình của mình, mà thay vào đó tôi muốn sử dụng một số db nhúng như H2. Hiện nay tôi có một tập tin application.properties, trông như thế này:Sử dụng cơ sở dữ liệu nhúng để thử nghiệm trong khởi động mùa xuân

spring.jpa.hibernate.ddl-auto=create 
spring.datasource.url=jdbc:mysql://localhost:3306/mydb 
spring.datasource.username=root 
spring.datasource.password=qwerty123 

Câu hỏi: Làm thế nào để cấu hình ứng dụng của tôi sử dụng db khác để kiểm tra? Tôi không có xml trong dự án của tôi, mọi thứ đều dựa trên chú thích. Tôi đã cố gắng xác định lớp học @Configuration với @Bean để tạo DataSource và sau đó sử dụng nó với chú thích @ContextConfiguration trên lớp thử nghiệm, nhưng nó nói rằng nó không thể tải ngữ cảnh.

Trả lời

13

Nếu bạn đang sử dụng dự án Maven, bạn có thể thêm tệp application.properties vào số src/test/resources của mình, ví dụ như với nội dung sau.

# Create DDL 
spring.jpa.hibernate.ddl-auto=create 

# H2 in local file system allowing other simultaneous connections 
spring.datasource.url=jdbc:h2:~/test;AUTO_SERVER=TRUE 

Ngoài ra, bạn cần phải bao gồm H2 như phụ thuộc (pom.xml):

<dependency> 
    <groupId>com.h2database</groupId> 
    <artifactId>h2</artifactId> 
    <version>1.4.193</version> 
</dependency> 
+0

Nó vẫn sử dụng MySQL db thay vì nếu tôi làm điều đó theo cách đó. Tôi có nên cung cấp thêm thông tin về lớp thi không? Một số chú thích để xác định rõ ràng các thuộc tính này chứ không phải các thuộc tính từ thư mục 'main'? –

+0

ok, tôi đã thêm chú thích '@PropertySource (" path/to/properties ") cho lớp kiểm tra và bây giờ nó hoạt động, cảm ơn –

Các vấn đề liên quan