如何让调用invokeLater()的函数达到100%的测试覆盖率?

发布于 2025-01-11 14:11:37 字数 517 浏览 0 评论 0原文

我正在使用 Junit4。
这是我的测试类:

import org.junit.Test;

public class UIUtilTest {

    @Test
    public void testMultiline() {
        var multiLineText = "one\ntwo";
        UIUtil.showError(multiLineText, "title");
        assert true;
    }
}

我有以下 Jacoco 覆盖率结果: 输入图片这里的描述

我怎样才能测试 Jacoco 抱怨的 lambda 以达到 100% 的覆盖率?

I am using Junit4.
This is my test class:

import org.junit.Test;

public class UIUtilTest {

    @Test
    public void testMultiline() {
        var multiLineText = "one\ntwo";
        UIUtil.showError(multiLineText, "title");
        assert true;
    }
}

I have the following Jacoco coverage result:
enter image description here

How can I test the lambda that Jacoco is complaining about in order to hit 100% coverage?

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

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

发布评论

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

评论(1

遇见了你 2025-01-18 14:11:37

让测试等待对话框弹出。实现后,您只需将另一个任务添加到 EDT 队列并等待它完成即可。

@Test
public void testMultiline() throws InterruptedException, InvocationTargetException {
    String multiLineText = "one\ntwo";
    UIUtil.showError(multiLineText, "title");
    SwingUtilities.invokeAndWait(() -> {
       //just wait, nothing more
    });
    assert true;
}

Make test wait for dialog to pop. Having your implementation you can simply add another task to the EDT queue and wait for it to finish.

@Test
public void testMultiline() throws InterruptedException, InvocationTargetException {
    String multiLineText = "one\ntwo";
    UIUtil.showError(multiLineText, "title");
    SwingUtilities.invokeAndWait(() -> {
       //just wait, nothing more
    });
    assert true;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文