mocking - 我可以用juni5和mockito或easymock模拟静态方法吗?
问题描述
我需要用junit5 (这很重要)和mockito或easymock来模拟一个静态方法。我看到 powermock 仅适用于 junit 4。是否有任何形式可以与 junit5 一起使用?
解决方案
不是据我所知。最简单的方法是用非静态方法屏蔽它。
public class A {
void foo() {
Stuff s = MyClass.getStuff();
}
}
会变成
public class A {
private final StuffProxy stuffProxy;
public A(StuffProxy stuffProxy) {
this.stuffProxy = stuffProxy;
}
public A() {
this(new StuffProxy());
}
void foo() {
Stuff s = stuffProxy.get();
}
}
public class StuffProxy {
public Stuff get() {
return MyClass.getStuff();
}
}
然后你嘲笑StuffProxy
.
推荐阅读
- javascript - 如何为 PHP 生成的表使用 JQuery 的 .click 函数
- .net-core - 是否可以根据请求参数注入作用域依赖项?
- python - 在列中添加值
- azure - Azure & Centos 7 & Centos 我尝试设置邮件服务,但 rDNS/PTR 检查 IP 10.0.0.4 = 未找到
- unity3d - Unity WebGL - 在本地主机上工作但不在服务器上
- android - 无法在 androidx.appcompat.app.ActionBarDrawerToggle 中使用操作栏
- sql - 如何根据两个条件从 MS Access 中的多个表中找出重复记录
- php - Symfony 3.4 路由在新安装中不起作用
- java - 调整浮动 ViewGroup 的大小和移动
- oracle - 在 PL/SQL 中将 & 转换为 &