java - Mockito 3.6 : Using mockStatic in @Before or @BeforeClass with JUnit4

标签 java java-8 mockito mockstatic

Mockito 3.6 支持在 try-with-resources 下模拟静态方法阻止解释 here .
有人可以告诉我是否在 @Before 中使用 Powermock 模拟静态方法吗?或 @BeforeClass可以 Mockito.mockStatic用于替换它们而不完全重写测试类?

最佳答案

我认为您可能需要进行一些重构。您可以通过在类级别创建 MockedStatic 变量来创建静态方法的模拟,并在您的测试中使用它,有时它也需要在 @After 块中关闭,例如

MockedStatic<StaticClass> mockedStaticClass;
@Before
public void setUp()
{
  mockedStaticClass = Mockito.mockStatic(StaticClass.class);
}

@After
public void tearDown() throws Exception
{
  mockedStaticClass.close();
}

@Test
public void yourTest()
{
  //make use of mockedStatic variable you created earlier
}

关于java - Mockito 3.6 : Using mockStatic in @Before or @BeforeClass with JUnit4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65965396/

相关文章:

java - 保存 NEAT 网络?

java - 如何设置 MEDIASTORE 以从 android 上的特定文件夹获取图像

java - 自定义任务执行器或 "am I reinventing the wheel?"

java - 用于 int 原语的 Mockito

junit - 如何使用 mockito 测试数据库连接

rest - Spring-boot 使用可分页测试休息 Controller

java - 内存不足错误 : Java heap memory (GC heap)

java - 性能改进(生成任意长度的随机字符串)

java - 无法在索引 20 处解析文本 '2021-06-22T18:27:03.5577Z'

Java流按内部数组分组