猿问

使用 Oracle 数据库配置的 Spring boot @DataJpaTest 未获取数据

我是 Spring Boot 的新手。我正在尝试为 Spring Boot Repository 配置 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。


如果我的配置正确,请告诉我。任何及时的帮助表示赞赏!


鸿蒙传说
浏览 163回答 2
2回答

哔哔one

您需要将 daoAddress bean 正确地@Autowire 到您的测试类中,以便正确建立连接。如果已启用日志记录,请同时共享记录器输出。

皈依舞

它打印 0 因为 daoAddress.getAddress() 没有返回任何东西。你可以放一个调试指针并检查它。因此,对于测试,您需要在测试方法中编写断言并检查正确的输出示例:-assertTrue("A/Wing",daoAddress.getAddress());接下来你可以自动装配你的dao类,你也可以使用mokito进行测试
随时随地看视频慕课网APP

相关分类

Java
我要回答