春季测试模拟静态方法全球

发布于 2025-01-22 09:13:34 字数 254 浏览 0 评论 0原文

在春季测试中,我知道我可以模拟静态方法(通常是静态的util方法:生成ID,从redis中获取值),使用Mockito这样:

try (MockedStatic) {
}

但是在每种测试方法中都必须执行此操作,这很丑陋,很麻烦,是否有任何方法可以做到这一点所有人(我可以有一个嘲笑的行为),

我认为也许是Junit5扩展名或Mockito Extension,这似乎是一个常见的问题,我想知道是否有人尝试过任何成功。

in spring test, I know I can mock static method(usually static util methods: generate id, get value from Redis) using Mockito like:

try (MockedStatic) {
}

but having to do this in every test method is ugly and cumbersome, is there any way to do it all(i am ok to have a single mocked behavior)

I am thinking maybe a junit5 extension, or Mockito extension, this seems like a common problem, I wonder if anyone tries something with any success.

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

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

发布评论

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

评论(1

同展鸳鸯锦 2025-01-29 09:13:34

尝试一下

public class StaticClassTest {

    MockedStatic<YourStatic> mockedStatic;

    @Before
    public void setup() {
        mockedStatic = Mockito.mockStatic(YourStatic.class);

        // if you want the same behavior all along.
        mockedStatic.when(() -> YourStatic.doSomething(anyString())).thenReturn("TEST");
    }
    
    @Test
    public void test_static() {
        // write your test here
    }


    @After
    public void teardown() {
        mockedStatic.close();
    }
}

try this

public class StaticClassTest {

    MockedStatic<YourStatic> mockedStatic;

    @Before
    public void setup() {
        mockedStatic = Mockito.mockStatic(YourStatic.class);

        // if you want the same behavior all along.
        mockedStatic.when(() -> YourStatic.doSomething(anyString())).thenReturn("TEST");
    }
    
    @Test
    public void test_static() {
        // write your test here
    }


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