即使我的 mocha 测试用例使用了 should ,eslint 仍然会发出警告吗?

Even though my mocha test cases are using should , eslint still warns about it?

我正在使用 mocha 和 chai.should 断言库对我的 OSS npm 模块进行单元测试。但是 eslint [v3.18.0^] 在代码中的 should 声明中警告它没有被使用

const should = chai.should();

Lint 警告 'should' 已分配一个值但从未使用过。

我们在 .eslintrc 中将 mocha 作为环境。尽管我的测试文件中至少有七个断言语句(如下所示,其中包含 "should"。

,但仍会出现此警告。
return sampleModule.getSomeFunction('dummy_accesss_token', 'dummy_event_id').should.eventually.be.eql([]);

我知道以下 问题,它讨论了其他从未声明过的断言语句,而对查询的回复[甚至没有声明为答案] 有人创建了一个插件来克服这个。

但我的基本前提是,这不是 eslint 中的错误吗?至少 "should" 应该 :-) 不应该被标记,因为它在代码中被使用 [在我​​的例子中多次使用]。

isnt this a bug in eslint?

不,因为您 没有使用名为 should 的变量。

您正在使用一个名为 should 的 getter,chai.should() 添加到 Object.prototype,但这与使用 变量.

您仍然可以使用该变量,例如:

should.exist(...);
should.not.exist(...);

但你可能没有这样做。

所以要消除警告,请不要这样做:

const should = chai.should();

但是这样做:

chai.should();