簡體   English   中英

使用Oracle數據庫配置的Spring Boot @DataJpaTest無法獲取數據

[英]Spring boot @DataJpaTest configured with Oracle database not fetching data

我是Spring Boot的新手。 我正在嘗試為Spring Boot存儲庫配置Junit測試。 以下是代碼段和配置。

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace=Replace.NONE)
@ContextConfiguration(classes= ObjectAddressDaoImpl.class, loader=AnnotationConfigContextLoader.class)
@EnableAutoConfiguration(exclude=AutoConfigureTestDatabase.class)
@TestPropertySource("/application.properties")
public class AddressTest{

   @Autowired
   private AddressDao daoAddress;

   @Test
   public void testGetAddresses() {
     List<AddressEntity> addresses = daoAddress.getAddresses(99L);
     System.out.println("Addresses : " + addresses.size());
   }
}

application.properties

spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@IP:Port:schema
spring.datasource.username=abcs
spring.datasource.password=abcs

spring.profiles.active=oracle

spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
spring.jpa.hibernate.ddl-auto=validate

當我運行測試時,它將打印0。

請讓我知道我的配置是否正確。 任何及時的幫助表示贊賞!

因為daoAddress.getAddress()沒有返回任何內容,所以它輸出0。 您可以放置​​調試指針並進行檢查。

因此對於測試,您需要在測試方法中編寫斷言並檢查正確的輸出示例:

assertTrue("A/Wing",daoAddress.getAddress());

接下來,您可以為dao類自動接線,也可以使用mokito進行測試

https://www.mkyong.com/spring-boot/spring-boot-junit-5-mockito/

該鏈接將幫助您了解春季的測試。

您需要正確@Autowire daoAddress bean到您的測試類中,以便正確建立連接。 如果已啟用日志記錄,請也共享日志記錄器輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM