gpt4 book ai didi

jpa - JBOSS Arquillian : How to force database to throw exception while running the aquillian test?

转载 作者:行者123 更新时间:2023-12-04 19:41:43 24 4
gpt4 key购买 nike

我正在实现一个功能,如果在将数据写入数据库时​​出现任何异常,我们应该在失败之前重试 5 次。我已经实现了该功能,但无法使用 arquillian test 对其进行测试。

我们使用 JPA 和 Versant 作为数据库。到目前为止,我正在调试 arquillian 测试,一旦我的流程到达数据库处理程序代码,我就会停止数据库。但这是最糟糕的测试方式。

您对如何实现相同目标有什么建议吗?

最佳答案

考虑到 JPA,最简单的方法是将方法添加到您的数据访问层,您可以使用它运行 native 查询。然后你对不存在的表或类似的东西运行查询。所以在我的 DAO 实用程序中,我找到了这样的方法:

public List findByNativeQuery(String nativeQuery, Map<String, Object> args) {

try{

final EntityManager em = getEntityManager();
final Query query = em.createNativeQuery(nativeQuery);

if (args!=null && args.entrySet().size()>0) {
final Iterator it = args.entrySet().iterator();
while (it.hasNext()) {
final Map.Entry pairs = (Map.Entry)it.next();
query.setParameter(pairs.getKey().toString(), pairs.getValue());
}
}

return query.getResultList();

}
catch (RuntimeException e) {
// throw some new Exception(e.getMessage()); // the best is to throw checked exception
}

}

关于jpa - JBOSS Arquillian : How to force database to throw exception while running the aquillian test?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37814841/

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