gpt4 book ai didi

java - 如何允许测试辅助方法抛出异常而不在调用方法中捕获异常?

转载 作者:行者123 更新时间:2023-12-01 22:14:46 25 4
gpt4 key购买 nike

我正在编写测试,在本例中使用 testNG,并且我想编写自己的断言方法,该方法使用一些反射来断言某些内容为真。我打算在其他辅助方法中使用该方法。

测试可以抛出一些已检查的异常,但如果做得正确,则不应抛出异常。在所有情况下,如果断言方法抛出异常,我希望它一直传播到堆栈顶部,导致测试失败并出现堆栈跟踪。

但是,我不想为每个测试类添加 throws 方法。特别是因为可能有其他方法抛出相同的异常,我希望 Eclipse 提醒我检查。有没有一种方法可以告诉测试框架本身,抛出的特定异常应该通过堆栈跟踪使测试失败,就像我将其抛出整个堆栈一样?

我可以使用org.testing.Assert.fail,但这只允许我提供一个字符串而不是完整的堆栈跟踪。我可以将检查的异常包装在 RuntimeException 中,但我觉得这会让测试人员(稍微)更难以理解实际发生的情况。有没有更直接的方式来表达“由于此异常而失败”

最佳答案

我看到 testNG 中的签名出现了实际异常:

http://testng.org/javadoc/org/testng/Assert.html#fail(java.lang.String,%20java.lang.Throwable)

并且失败还会引发运行时异常 ( TestNGException ),因此您可以自己启动该异常,并且测试工具会理解。

关于java - 如何允许测试辅助方法抛出异常而不在调用方法中捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31297409/

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