1 回答
TA贡献1824条经验 获得超6个赞
你的测试有两个问题:
调用存根必须在实际交互之前配置。所以只需交换这些行:
dataHandler.dataProcessor(json, topic_name, partition);
when(schemaParsor.parseDebeziumSchema(json)).thenReturn(jsonArray); //stub parseDebeziumSchema
Mockito.verify用于验证与模拟的交互。但是在您的代码中,您正在验证对被测对象的方法调用。您看不到此错误,因为您的代码在第 1 点中断。删除此行:
verify(dataHandler, Mockito.times(1)).dataProcessor(json, topic_name, partition);
总而言之,您的代码应如下所示。我还添加了schemaParsor.parseDebeziumSchema(json)仅调用一次的验证
@Test
public void testdataProcessor() throws JsonParseException, JSONException {
jsonObject.put("field","recipe_name");
jsonObject.put("type","string");
jsonArray.put(jsonObject);
when(schemaParsor.parseDebeziumSchema(json)).thenReturn(jsonArray); //stub parseDebeziumSchema
dataHandler.dataProcessor(json, topic_name, partition);
verify(schemaParsor, times(1)).parseDebeziumSchema(json); //verify that parseDebeziumSchema is called exactly once
}
添加回答
举报