java - 模拟调用实用程序类的静态方法
问题描述
我需要为该方法编写一个单元测试processNotification
。但是这个方法在内部调用JsonUtility.getNotificationDTOFromMessage
.
我需要在null
调用它时返回值。我们如何通过使用 Mockito 来实现这一点?
我无法更改代码,因为它不属于我。
@Override
public void processNotification(String message) throws IOException {
logger.info(" Processing the notifications");
NotificationDTO notification =
JsonUtility.getNotificationDTOFromMessage(message);
if (null == notification) {
解决方案
您不能使用 Mockito 模拟静态方法。如果您需要模拟静态方法,请尝试使用 PowerMockito
例如:PowerMockito.mockStatic(JsonUtility.class);
推荐阅读
- django - AllowAny DRF 中的 DELETE 请求所需的权限?
- r - 使用 igraph 可视化 Collatz Graph
- php - laravel:无法通过控制器中的函数存储从文本区域获取输入
- elasticsearch - 使用 Kibana 的 Fluentd 解析器类型
- python-3.x - 通过捕获组的正则表达式拆分火花数据框列中的字符串
- chart.js - chart.js:yAxis 之一在混合图表中未正确缩放
- python-3.x - 期货:从不同的线程设置结果
- javascript - 如何为特定位置创建滚动事件
- javascript - 检查是否正在使用数组中的一个元素,如果是,则使用另一个元素
- java - 存储为文本的错误值/数字 - Apache POI