为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

鸿蒙传说 2023-06-08 17:13:59
我是 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.propertiesspring.datasource.driver-class-name=oracle.jdbc.OracleDriverspring.datasource.url=jdbc:oracle:thin:@IP:Port:schemaspring.datasource.username=abcsspring.datasource.password=abcsspring.profiles.active=oraclespring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialectspring.jpa.hibernate.ddl-auto=validate当我运行测试时,它打印 0。如果我的配置正确,请告诉我。任何及时的帮助表示赞赏!
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

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



查看完整回答
反对 回复 2023-06-08
?
皈依舞

TA贡献1851条经验 获得超3个赞

它打印 0 因为 daoAddress.getAddress() 没有返回任何东西。你可以放一个调试指针并检查它。

因此,对于测试,您需要在测试方法中编写断言并检查正确的输出示例:-

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

接下来你可以自动装配你的dao类,你也可以使用mokito进行测试


查看完整回答
反对 回复 2023-06-08
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信