0
我寫過一個螺栓和一個拓撲結構。現在我需要做一個Junit測試用例。我的實際輸入是一個Json,並且在我的幫助下,我編寫了代碼將其存儲在MySQL中。現在我需要測試我在方法中編寫的邏輯。那麼如何在測試用例中爲元組創建一個對象,或者是否有其他方法可以做到這一點。我附上了我的方法的代碼。Apache Storm Junit測試用例螺栓
public void execute(Tuple input, BasicOutputCollector collector) {
int size = input.getFields().size();
Fields fields = input.getFields();
if (size == 1) {
logger.info("PostbackToRDSBolt execute method starts");
try {
eventJson = (JSONObject) JSONSerializer.toJSON((String) input.getValueByField(fields.get(0)));
address = (String) input.getValueByField(fields.get(0));
Id = (String) eventJson.get("Id");
click = (String) eventJson.get("click");
time = (String) eventJson.get("time");
uuid = UUID.randomUUID().toString();
type = "post";
//Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(
dBUrl, username,
password);
stmt = con.createStatement();
stmt.execute("INSERT INTO " + tableName
+ "(id,data,type,txnid,groupname,time)values('" + uuid
+ "','" + address + "'," + "'" + type + "','"
+ Id + "','" + click + "','" + time
+ "')");
logger.info("inserted successfully in mysql");
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e1) {
logger.info("" + e1);
e1.printStackTrace();
}
}
}
}
最佳實踐是將您的邏輯封裝到服務類中以簡化單元測試,而不是直接測試您的螺栓。然後,您可以使用LocalCluster實例創建集成測試。 – fhussonnois