Grails 服务/事务/RuntimeException/测试

发布于 2024-10-11 08:48:17 字数 681 浏览 1 评论 0原文

我正在测试事务设置为 true 的服务中的代码,该代码会说话 到客户提供的 Web 服务,其主要部分看起来像

class BarcodeService { 
..  
/// some stuff  ...  

try{
      cancelBarCodeResponse = cancelBarCode(cancelBarcodeRequest)
} catch(myCommsException e) {
  throw new RuntimeException(e)
}
... 

myCommsException 扩展 Exception 的位置。

我有一个测试,看起来像

// As no connection from my machine, it should fail ..

shouldFailWithCause(RuntimeException){
  barcodeServices.cancelBarcodeDetails()
}

测试失败是因为它捕获的是 myCommsException 而不是 RuntimeException 我想我已经将它转换为..任何人都想指出什么 我做错了吗?它不是 RuntimeException 的事实也意味着任何 在我的 try/catch 实际上被写出来之前完成的交易相关信息 还不如扔掉??

谢谢

I'm testing come code in a service with transactional set to true , which talks
to a customer supplied web service the main part of which looks like

class BarcodeService { 
..  
/// some stuff  ...  

try{
      cancelBarCodeResponse = cancelBarCode(cancelBarcodeRequest)
} catch(myCommsException e) {
  throw new RuntimeException(e)
}
... 

where myCommsException extends Exception ..

I have a test which looks like

// As no connection from my machine, it should fail ..

shouldFailWithCause(RuntimeException){
  barcodeServices.cancelBarcodeDetails()
}

The test fails cause it's catching a myCommsException rather than the
RuntimeException i thought i'd converted it to .. Anyone care to point out what
i'm doing wrong ? Also will the fact that it's not a RuntimeException mean any
transaction related info done before my try/catch actually be written out rather
than thrown away ??

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

﹂绝世的画 2024-10-18 08:48:17

从我看来,看起来还不错。问题可能出在代码的 ///some stuff 和 ... 部分。使用调试器准确找出抛出异常的位置。

From what I see, it looks ok. The problem might be in the ///some stuff and the ... parts of the code. Use a debugger to find out exactly where the exception is being thrown.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文