gpt4 book ai didi

java - 建议模拟生成随机值的私有(private)方法

转载 作者:行者123 更新时间:2023-11-29 09:11:06 25 4
gpt4 key购买 nike

在 DocInfoServiceImpl 中,我有以下方法,我试图使用 easymock 对其进行模拟。但是我不清楚如何返回使用随机 uuid 值(相关性和 docfamily)创建并从私有(private)方法返回的 docInfo 对象?

public void saveDocInfo(String docId)
{
**DocInfo docInfo = createDocInfo(docId);**
LOG.debug("Attempting to persist the doc info object for docId [" + docId + "]");
docInfoDao.save(docInfo);
LOG.debug("Persisted the doc info object for docId [" + docId + "]");
}

private DocInfo createDocInfo(String docId)
{
final DocInfo docInfo = new DocInfo();
docInfo.setId(docId);
docInfo.setDocFamilyUuid(UUIDGenerator.getInstance().getUuidAsString());
docInfo.setCorrelationId(UUIDGenerator.getInstance().getUuidAsString());
return docInfo;
}

在我使用的测试中,mockDocInfoDao.save 在第 3 行服务的 saveDocInfo 中被调用。

void testSave()
{
def String docId = 'I19292800fe1911e0a849005056932b99'
mockDocInfoDao.save(expectedDocInfo)
replay(mockDocInfoDao)

docInfoServiceImpl.saveDocInfo(docId)

verify(mockDocInfoDao)
}

最佳答案

私有(private)方法并不意味着要进行测试,因为它们可能会发生变化。

使用 EasyMock,您将检查在 saveDocInfo 中是否至少调用了一次保存。所以你可以实例化 DocInfo 并将其传递给 testSave()

 void testSave()     {
def String docId = 'I19292800fe1911e0a849005056932b99'
mockDocInfoDao.save(new DocInfo())
replay(mockDocInfoDao)

docInfoServiceImpl.saveDocInfo(docId)

verify(mockDocInfoDao)
}

关于java - 建议模拟生成随机值的私有(private)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12428657/

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