gpt4 book ai didi

java - spring JpaRepository 方法的 stub

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:10 27 4
gpt4 key购买 nike

我有下一个 JPQL 查询:

@Query(value = "select t.ts as ts, t.ko.eolink.guid as guid from ObjPar t "
+ "where t.tuser.cd = ?1 and t.lst.cd=?2 and t.ts between ?3 and ?4")
List<MeterData> findTimestampByUser(String userCd, String lstCd, Date dtFrom, Date dtTo);

其中 MeterData - 只是投影接口(interface):

public interface MeterData {
Date getTs();
String getGuid();
}

现在我需要写一些像 stub 这样的东西。我不需要执行我的查询,但我需要它返回 MeterData 列表。

我怎样才能实现它?我应该创建实现 MeterData 的类并实例化它吗?也许有人可以提示我更简单的方法?

我的解决方案:

List<MeterData> findTimestampByUser(String userCd, String lstCd, Date dtFrom, Date dtTo) {

class LocalMeterData implements MeterData {
public Date getTs() {
return new Date();
}
public String getGuid() {
return "2312-1316-4564-4654-4463";
}
}

List<MeterData> lst = new ArrayList<>(5);
MeterData elem = new LocalMeterData();
lst.add(elem);
lst.add(elem);
lst.add(elem);
lst.add(elem);

return lst;

}

最佳答案

如果您需要 stub 存储库以进行单元测试,只需使用 Mockito。正如您已经所做的那样,在测试中将您的类实现声明为私有(private)内部类,并指示 Mockito 使用它:

MeterData elem = new LocalMeterData();
Mockito.when(yourRepository.findTimestampByUser(anyString(), any(Date.class), any(Date.class)))
.thenReturn(Arrays.asList(elem, elem, elem, elem));

关于java - spring JpaRepository 方法的 stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53720718/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com