繁体   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