J'ai un collecteur de mesures qui stockent des données sur InfluxDB
, je veux tester les méthodes pour stocker ces mesures. Je l'essaie mais je ne suis pas capable de se moquer du client InfluxDB
. Je ne veux pas pointer vers un vrai InfluxDB
sur l'environnement de test.Mock client InfluxDB pour tester une classe MetricCollector
Tout ce que j'ai réalisé jusqu'ici sont des "exceptions de pointeur nulles" et la conection refusée.
Ceci est mon test (en utilisant TestNG). Qu'est-ce que je fais mal?
@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();
}
}
}
Votre code ne fonctionne pas pour moi, mais vous me mettez dans la bonne direction. Je vais modifier la question et ajouter la solution. Merci – FranAguiar