运行 带有断言 expect(xhr.requestBody.test).to.not.exist 的赛普拉斯测试用例,但 eslint 抛出错误

running cypress test cases with assertion expect(xhr.requestBody.test).to.not.exist, but eslint throws error

 cy.wait("api").then((xhr: any) => {
      expect(xhr.method).to.eq("POST");
      expect(xhr.status).to.eq(200);
      expect(xhr.requestBody.test).to.not.exist;
    });

期待(xhr.requestBody.test).to.not.exist;此行抛出 eslint 错误,如下所示:

error  Expected an assignment or function call and instead saw an expression  @typescript-eslint/no-unused-expressions

在我看来你有多种选择来解决这个问题:

第一个也是推荐的选项是重写您的断言,例如如下:

const bodyContainsTest = xhr.requestBody.hasOwnProperty('test');
expect(bodyContainsTest).to.be.false;

第二个选项是简单地为下一行禁用该规则:

// eslint-disable-next-line @typescript-eslint/no-unused-expressions
expect(xhr.requestBody.test).to.not.exist;

如果需要,另一种选择是为您 .eslintrc.json 中的所有赛普拉斯测试文件全局禁用此规则:

"@typescript-eslint/no-unused-expressions": "off",

tslint-playground 验证。

通过 linter 的两个候补:

expect(xhr.requestBody).to.not.have.property(test)

expect(xhr.requestBody.test).to.eq(undefined)