我有一個指標收集器,它將數據存儲在InfluxDB
上,我想測試存儲這些指標的方法。我正在嘗試,但我無法嘲笑InfluxDB
客戶端。我不想在測試環境中指出一個真實的InfluxDB
。模擬InfluxDB客戶端測試MetricCollector類
到目前爲止我所取得的一切都是一些「空指針異常」,並且連接被拒絕。
這是我的測試(使用TestNG)。我究竟做錯了什麼?
@Test
public void validateMetrics() {
String influxHost = "http://localhost";
String credentials = "admin:admin";
String influxDatabaseName = "testDataBase";
influxDB = InfluxDBFactory.connect(influxHost, credentials.split(":")[0], credentials.split(":")[1]);
MetricsCollector metricsCollector = null;
try {
String hostName = "test-server-01";
int statusValue = 1;
metricsCollector = new MetricsCollector(influxDB);
BatchPoints metrics = metricsCollector.initBatchPoint(influxDatabaseName);
Point point = metricsCollector.setMetric(hostName, "status", statusValue);
metrics = metricsCollector.addToMetrics(metrics, point);
Assert.assertTrue(metrics.getPoints().get(0).lineProtocol().contains(hostName));
Assert.assertTrue(metrics.getPoints().get(0).lineProtocol().contains("status=" + statusValue));
} finally {
if (metricsCollector != null) {
metricsCollector.closeConnection();
}
}
}
你的代碼對我不起作用,但你讓我以正確的方式。我將編輯問題並添加解決方案。謝謝 – FranAguiar