### Question:
DataxTask extends AbstractTask { private ObjectNode buildDataxJobSettingJson() { ObjectNode speed = JSONUtils.createObjectNode(); speed.put("channel", DATAX_CHANNEL_COUNT); if (dataXParameters.getJobSpeedByte() > 0) { speed.put("byte", dataXParameters.getJobSpeedByte()); } if (dataXParameters.getJobSpeedRecord() > 0) { speed.put("record", dataXParameters.getJobSpeedRecord()); } ObjectNode errorLimit = JSONUtils.createObjectNode(); errorLimit.put("record", 0); errorLimit.put("percentage", 0); ObjectNode setting = JSONUtils.createObjectNode(); setting.put("speed", speed.toString()); setting.put("errorLimit", errorLimit.toString()); return setting; } DataxTask(TaskExecutionContext taskExecutionContext, Logger logger); @Override void init(); @Override void handle(); @Override void cancelApplication(boolean cancelApplication); String[] tryExecuteSqlResolveColumnNames(BaseDataSource baseDataSource, String sql); @Override AbstractParameters getParameters();  }### Answer:
@Test public void testBuildDataxJobSettingJson() throws Exception { try { Method method = DataxTask.class.getDeclaredMethod("buildDataxJobSettingJson"); method.setAccessible(true); JsonNode setting = (JsonNode) method.invoke(dataxTask, null); Assert.assertNotNull(setting); Assert.assertNotNull(setting.get("speed")); Assert.assertNotNull(setting.get("errorLimit")); } catch (Exception e) { Assert.fail(e.getMessage()); } }