我有一个在WebStorm IDE中开发的nodejs项目。我使用 Mocha 和 supertest 作为我的单元测试框架。
WebStorm 显示了 2 个警告:参数类型 app|exports|module.exports 无法分配给参数类型 Function|Server
和 未解析的函数或方法 get()
。
我尝试从文件 -> 设置 -> 语言和框架 -> JavaScript -> 库 -> 下载
下载并安装 super 测试库,但没有任何反应。所以我直接从https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/supertest下载了它们并手动添加它们,但 WebStorm 仍然产生相同的警告。
这是我的 server.js 代码:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.status(200).end();
});
app.listen(3000);
module.exports = app;
这是我的 servertest.js 代码:
/* 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);
});
});
如何消除这些警告?
最佳答案
对我来说效果很好(WebStorm 2016.2):
启用的库:Node.js Core
、ECMAScript 6
、HTML
、HTML5/ECMAScript5
、 Jasmine 绝对打字
。后者实际上并不是必需的,因为 WebStorm 可以解析 Mocha node_modules 中的“describe()
”等,但可以避免检查有关 jasmine 内容缺失导入的情况。
您的项目中似乎有一些定义与您的请求
定义相冲突。当您按住 Ctrl 键并单击请求
时,您会看到什么代码?
关于node.js - 在WebStorm中使用supertest产生 'Argument type is not assignable to parameter type'和 'Unresolved function or method',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38303966/