【发布时间】:2021-06-24 19:39:06
【问题描述】:
我想模拟来自两个不同类的静态方法。现在,我的代码是这样的:
try(MockedStatic<ObjectFactory> objectFactory = mockStatic(ObjectFactory.class)){
objectFactory.when(() -> ObjectFactory.getObject(Provider.class)).thenReturn(new Provider());
.....
}
我想模拟来自Context.class 的另一个静态方法调用。有没有办法在同一个 try 块中定义一个 MockedStatic 上下文对象,而不使用嵌套的 try 块。
不使用 try 块我认为我们可以使用这样的东西
MockedStatic<ObjectFactory> objectFactory = mockStatic(ObjectFactory.class);
MockedStatic<Context> contextMock = mockStatic(Context.class);
......
objectFactory.close();
contextMock.close();
但如果测试抛出异常,mock 将不会关闭,其他使用 mock 的测试也会抛出异常。
【问题讨论】:
标签: java unit-testing junit mockito