2016-05-31 3 views
1

Ich arbeite, eine Menge Komponententests von Spott zu Scherz zu migrieren. Wenn ich ein Modul Scherz, der die neue Reliquie Mittel wie so erfordert: require('newrelic'), erhalte ich Downstream-Fehler wie:Wie man ein Modul richtig testet, das newrelic mit Scherz benötigt

- TypeError: Cannot convert undefined or null to object 
    at Object.<anonymous> (node_modules/newrelic/lib/config.js:165:33) 
    at Runtime._execModule (node_modules/jest-cli/src/Runtime/Runtime.js:261:17) 
    at Object.<anonymous> (node_modules/newrelic/lib/logger.js:18:14) 
    at Object.<anonymous> (node_modules/newrelic/index.js:3:14) 

Was ist der beste Weg ist, mit Modulen wie newrelic zu beschäftigen, welche Scherz spöttisch eine harte Zeit hat? Was haben andere Leute getan, wenn sie sowohl Scherz als auch Neuling in ihrem Stapel haben?

Antwort

1

Der Weg, den ich nehmen schließlich war ein Mock-Modul für newrelic in meinem __mocks__ Ordner zu erstellen:

module.exports = { 
    addCustomParameter: jest.fn() 
}; 

Ich muss wahrscheinlich später mehr Funktionen hinzuzufügen, aber jetzt ist das genug. Ich frage mich immer noch, ob es einen Weg gibt, Scherz zu bekommen, um die Newrelic-Bibliothek automatisch fehlerfrei zu machen.

0

Ich habe das mit ein paar Modulen gesehen, die aus verschiedenen Gründen fehlgeschlagen sind, obwohl es in den neueren Versionen von Jest viel seltener vorkommt.

Wie @linuxdan vermuten lässt, können Sie das Problem möglicherweise umgehen, indem Sie die dokumentierte manuelle Mocking-Funktion here verwenden.

Um dies zu erreichen, möchten Sie wahrscheinlich nur ein Objekt mit den erwarteten Methoden exportieren, die mit generiert wurden.

Der Grund, warum dies funktioniert, ist, dass es nicht mehr versucht, die Methoden zu ermitteln, die es benötigt, um die newrelic-Bibliothek automatisch abzuspielen. Es wird während dieses Prozesses sein, dass es scheitert.

Verwandte Themen