Ho difficoltà a capire come testare una libreria destinata a essere utilizzata per comunicare con un altro servizio web. Ad esempio, ho una classe Messenger
che inizializza una connessione e richiede una configurazione e un indirizzo remoto da eseguire. Come potrei fare per testare qualcosa del genere?
import { MessengerConfig } from '../Interfaces/MessengerConfig';
import { Connection, ConfirmChannel, connect } from 'amqplib';
import * as Promise from 'bluebird';
export default class Messenger {
logger;
connection: Connection;
channel: ConfirmChannel;
config: MessengerConfig;
constructor(logger, config: MessengerConfig) {
this.logger = logger;
this.connection = null;
this.channel = null;
this.config = config;
}
public start(durable: boolean = true): Promise<any> {
return connect(this.config.host)
.then((conn) => {
this.connection = conn;
return this.connection.createConfirmChannel();
})
.then((chan) => {
this.channel = chan;
return this.channel.prefetch(1);
})
.then(() => {
return Promise.map(this.config.subKeys, (route) => {
return this.channel.assertExchange(route.exchange, 'direct', { durable: durable });
});
});
}
}
Che cosa posso modificare per testare la funzione start
? Oppure vale la pena provare? In .NET questo è stato un po 'più facile perché ho potuto creare costruttori sovraccaricati per iniettare un finto HttpClient
o qualsiasi altra cosa di cui avevo bisogno. Non riesco a sovraccaricare le funzioni in dattiloscritto / javascript come farei lì, comunque.