Node.js 尽管我的mocha测试用例使用的是should,但eslint仍然对此发出警告?

Node.js 尽管我的mocha测试用例使用的是should,但eslint仍然对此发出警告?,node.js,chai,eslint,Node.js,Chai,Eslint,我正在使用mocha和chai.should断言库对我的OSS npm模块进行单元测试。但是eslint[v3.18.0^]在代码中的should声明中警告没有使用它 const should=chai.should() 皮棉警告 “应该”被指定了一个值,但从未使用过 我们在.eslintrc中使用摩卡作为环境。尽管我的测试文件中至少有七条断言语句(如下所示)包含“应该”,但仍会出现此警告 我知道下面的问题,它讨论了其他从未声明过的断言语句,而对查询的回复[甚至没有声明为答案]有人创建了一个插件

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

const should=chai.should()

皮棉警告 “应该”被指定了一个值,但从未使用过

我们在.eslintrc中使用摩卡作为环境。尽管我的测试文件中至少有七条断言语句(如下所示)包含“应该”,但仍会出现此警告

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

但我的基本前提是,这不是eslint中的一个bug吗?至少“should”应该:-)不被标记,因为它被用于代码中[在我的例子中多次]

这不是eslint中的一个bug吗

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

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

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

should.exist(...);
should.not.exist(...);
但你可能没那么做

因此,要消除警告,请不要这样做:

const should = chai.should();
chai.should();
但要做到这一点:

const should = chai.should();
chai.should();

谢谢@robertklep。阅读您的评论,这一点在chai指南中得到进一步加强