gpt4 book ai didi

java - JMock奇怪的try/catch子句

转载 作者:行者123 更新时间:2023-12-02 00:22:09 25 4
gpt4 key购买 nike

我正在尝试使用 JMock 编写一些测试,并将添加以下代码:

db = context.mock(DBResultQueryExecutor.class);
context.checking(new Expectations() {{
oneOf (db).prepareQuery(query);
will(throwException(new QueryException("Test")));
}});

现在,我的DBResultQueryExecutor定义如下:

public interface DBResultQueryExecutor{
...
void executeQuery() throws QueryException; //This is a checked exception
... }

在 JMock 中,我只是想指定该方法将在未来的某个时刻被调用一次。这很好,除了 Eclipse 提示预期设置内未处理的异常之外。我知道它稍后会被抛出,而且我没有义务在预期范围内检查它。

我在这里做错了什么或者有一个简单的补救措施可以解决这种情况吗?谢谢。

最佳答案

我刚刚从同事那里得到了一些关于这个问题的大力帮助;解决方案是将“抛出异常”添加到您的测试方法描述符中。我的解释仍然不太清楚,但它类似于 Expectations {} block 中的“Java 不知道您实际上没有调用该方法”。在我看来,Java 应该知道 - 但它不知道。

我希望这会有所帮助 - 我也确信 Eclipse 是错误的。

关于java - JMock奇怪的try/catch子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10741429/

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