chai - 使用 chai 消除 no-unused-expressions linter 错误的好方法

标签 chai eslint

在我的 Chai 测试中,我经常发现自己想要使用他们的断言,例如 .to.be.empty.to.be.true 等,因为我发现它们比 .to.be.length(1).to.be.equal(true) 更易读。但是,这会破坏我的 linter(我使用的是默认的 Airbnb linting)。

我可以使用 //disable-eslint-line 语法,但我必须将它添加到每一行,这样看起来很乏味。

我还阅读了关于 DirtyChai 的内容库,但这需要我回顾我的整个测试库,为它们添加括号,这似乎是我不应该做的事情,只是为了让我的 linter 通过一些它应该首先可以接受的东西。

有谁知道比我上面概述的方法更好的方法来处理这个问题?

最佳答案

您可以使用 eslint-disable 禁用整个文件的规则在相关文件的顶部:

/* eslint-disable no-unused-expressions */
expect(someTrueValue).to.be.true; 

但是,将它添加到每个测试文件的顶部可能会很乏味。要对所有相关文件禁用此规则,您可以:

  1. 放一个新的.eslintc configuration file在与测试文件相同的目录中,配置为禁用该规则。这允许您对所有其他规则使用默认配置,同时忽略该规则,特别是仅针对该文件夹中的文件。 ESLint 称之为 Configuration Cascading .

    {
        "rules": {
            "no-unused-expressions": "off"
        }
    }
    
  2. 在主 .eslintrc 文件中使用 overrides 键到 disable rules for groups of files使用 glob 模式匹配:

    {
        "overrides": [
            {
                "files": ["*.test.js", "*.spec.js"],
                "rules": {
                    "no-unused-expressions": "off"
                }
            }
        ]
    }
    

这还允许您禁用其他在测试中变得麻烦的规则,例如使用 rewire 时的 no-underscore-dangle .

关于chai - 使用 chai 消除 no-unused-expressions linter 错误的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52521020/

相关文章:

javascript - 类型错误 : Cannot read property 'equal' of undefined

javascript - 预提交时是否可以使用 ESlint 或其他任何方式禁止单词列表?

npm - 如何全局安装 ESlint?

node.js - Node Mocha/Chai 单元测试 - 比较对象数组,无论顺序如何

reactjs - vscode 和 eslint <Text> 上的缩进错误 | JSX | react native

vue.js - VS code - 格式化 .vue 文件中的数组

reactjs - TypeScript linting 错误 : ref does not exist on component

node.js - 使用 mocha.js 在 node.js 中测试外部 api 调用

javascript - 为什么我的模拟时间测试函数在某些环境中永远无法完成?

javascript - 找不到模块 chai 尽管它存在于节点模块文件夹中