gpt4 book ai didi

java - 模拟一个具有一些由随机值生成的字段的类?

转载 作者:行者123 更新时间:2023-12-01 15:09:42 25 4
gpt4 key购买 nike

我想知道如何进行这个测试!下面是测试方法: 可以看到correlationId和docFamilyUUid是由UUID类随机生成的。基本上,getDocInfo 首先在mockDao 上调用findAllByDocId,如果返回null,它将创建一个要保存到数据库的docInfo 对象。

void testGetDocInfo()
{
def String docId = 'I19292800fe1911e0a849005056932b99'
def List<DocInfo> expectedResult = [expectedDocInfo]
expect(mockDocInfoDao.findAllByDocId(docId)).andReturn(null)
mockDocInfoDao.save(new DocInfo())
replay(mockDocInfoDao)
docInfoServiceImpl.getDocInfo(docId)
verify(mockDocInfoDao)
}

/////////DocInfoServiceClass

 public final DocInfo createDocInfo(final String docId)
{
final DocInfo docInfo = new DocInfo();
docInfo.setId(docId);
docInfo.setDocFamilyUuid(UUIDGenerator.getInstance().getUuidAsString());
docInfo.setCorrelationId(UUIDGenerator.getInstance().getUuidAsString());
return docInfo;
}
/**
* @param docId is the document Id
* @return the list of DocInfo objects for a particular docId
*/
public final List<DocInfo> findAllByDocId(final String docId)
{
return docInfoDao.findAllByDocId(docId);
}

/**
* @param docId is the document Id
* @return the list of DocInfo objects for a particular docId
*/
public final List<DocInfo> getDocInfo(final String docId)
{
List<DocInfo> docInfoList = null;
docInfoList = docInfoDao.findAllByDocId(docId);
if (docInfoList == null)
{
docInfoList = new ArrayList<DocInfo>();
DocInfo docInfo = createDocInfo(docId);
docInfoDao.save(docInfo);
docInfoList.add(docInfo);
}

return docInfoList;
}

最佳答案

您应该使用部分模拟来仅模拟 createDocInfo 方法。这样您就可以从那里返回您想要的任何内容,特别是带有您选择的 id 的 DocInfo 实例。这样您就可以对 getDocInfo 的行为做出必要的断言(例如确保传递具有相同 id 的实例来保存和添加)。

您可以阅读有关部分模拟的内容 here 。您没有说明您正在使用哪个版本的 EasyMock,所以我假设它不是太旧。

关于java - 模拟一个具有一些由随机值生成的字段的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499283/

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