测试依赖于静态方法的方法有哪些方法?

2024-01-02

我需要测试一些依赖于 Spring Security 的安全相关类。这段代码利用了SecurityContextHolder.getContext()这是静态的。如何在不设置整个安全上下文的情况下测试调用方法?

我们将 JUnit 4 与 Mockito 结合使用。 Mockito 在其常见问题解答中非常明确地表示不支持静态方法。还有其他选择吗? Spring Security 案例的答案会很好,但我正在寻找更普遍问题的解决方案。


看一下电源模拟 http://code.google.com/p/powermock/它将允许您模拟静态方法、构造函数并执行您通常无法使用 java 执行的各种其他疯狂的操作。它与大多数模拟库集成,包括mockito(看这里http://code.google.com/p/powermock/wiki/MockitoUsage13 http://code.google.com/p/powermock/wiki/MockitoUsage13举个例子)。

总的来说,我发现这是一个非常有用的库,可以放在您的测试工具箱中(在编写 java 代码时)。唯一需要注意的是,由于这个库会处理你的字节码,如果你有其他库进行字节码检测/操作,你可能会遇到麻烦,但在你尝试之前你不会知道。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试依赖于静态方法的方法有哪些方法? 的相关文章

随机推荐