2016-07-11 27 views
1

Ich habe ein nodejs-Projekt in WebStorm IDE entwickelt. Ich verwende Mocha mit Supertest als Unit-Test-Framework.Verwenden des Supertests in WebStorm Produzieren 'Argumenttyp ist nicht dem Parametertyp zuweisbar' und 'Nicht aufgelöste Funktion oder Methode'

WebStorm zeigte 2 Warnungen: Argument type app|exports|module.exports is not assignable to parameter type Function|Server und Unresolved function or method get().

Ich habe versucht, Supertest-Bibliotheken von File -> Settings -> Languages & Frameworks -> JavaScript -> Libraries -> Download herunterladen und installieren, aber nichts passiert. Also lud ich sie direkt von https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/supertest herunter und fügte sie manuell hinzu, aber WebStorm erzeugte immer noch dieselben Warnungen.

Das ist mein server.js Code:

const express = require('express'); 
const app = express(); 

app.get('/', (req, res) => { 
    res.status(200).end(); 
}); 

app.listen(3000); 

module.exports = app; 

Das ist mein servertest.js Code:

/* eslint-env mocha*/ 

const request = require('supertest'); 
const app = require('../server'); 

describe('GET /',() => { 
    it('should respond OK', (done) => { 
    request(app) //Argument type app|exports|module.exports is not 
       //assignable to parameter type Function|Server 
     .get('/') //Unresolved function or method 
     .expect(200, done); 
    }); 
}); 

Wie kann ich diese Warnungen loswerden?

Antwort

1

funktioniert gut für mich (WebStorm 2016,2):

enter image description here

Aktiviert Bibliotheken: Node.js Core, ECMAScript 6, HTML, HTML5/ECMAScript5, Jasmine Definitely Typed. Letzteres ist eigentlich nicht notwendig, da WebStorm 'describe()' usw. von Mocha node_modules auflösen kann, aber Inspektionen über fehlende Importe für Jasmin-Zeug vermeiden kann.

Scheint, Sie haben einige Definitionen in Ihrem Projekt, die mit Ihrer request Definition in Konflikt stehen. Welchen Code verwenden Sie, wenn Sie bei gedrückter Strg-Taste auf request klicken?

+0

Wenn ich mit der Strg-Taste + auf "request" geklickt habe, bin ich zu node_modules/supertest/index.js gegangen. –

+0

Aus Gründen der zukünftigen googlers, 'jasmine-DefinitelyTyped' hinzufügen repariert die Überprüfung" Argument type-Funktion ist nicht Parametertyp ActionFunction zuweisbar " – Kelvin