1

我正在尝试为组件编写测试用例。测试用例正在通过。但是 JS lint 困扰着我。它抛出一个错误 - :期望一个赋值或函数调用,而是看到一个表达式

错误来了:expect(dummyOutput.find('h1.screen-reader-text')).to.exist;

我完整的测试用例代码如下。任何人都可以在这里帮我解决错误吗?

import React from 'react';
import { shallow } from 'enzyme';
import Page from './page';

const props = {
  pageLayout: 'article',
  theme: 'test-theme',
  header: {},
  footer: {},
  singleAds: {},
  siteMeta: { copyright_text: '©COPYRIGHT CONTENT HERE' },
};

const dummyProps = {
  pageLayout: 'dummy_text',
  theme: 'test-theme',
  header: {},
  footer: {},
  singleAds: {},
  siteMeta: { copyright_text: '©COPYRIGHT CONTENT HERE' },
};

const specs = () => describe('Page Layout', () => {
  describe('Renders', () => {
    const wrapper = shallow(<Page {...props} />);
    const dummyOutput = shallow(<Page {...dummyProps} />);

    it.only('should not return H1 tag', () => {
      expect(wrapper.find('h1.screen-reader-text')).not.exist;
    });

    it.only('should return H1 tag', () => {
      expect(dummyOutput.find('h1.screen-reader-text')).to.exist;
    });
  });
});

if (process.env.NODE_ENV === 'test') {
  specs();
}

export default specs;
4

1 回答 1

2

当它在没有被分配给任何东西的行上看到一个表达式时,它会警告你。例如,

1 + 1

会让它抱怨,因为它只是评估并且什么都不做,而 linter 认为这是无意的。它喜欢看到类似的作业

const x = 1 + 1 

在您的情况下,我认为它将该行解释为未用于任何内容的表达式,因为它看到最终您正在访问函数结果的属性的属性(.to.exist),但是您没有用那个值做任何事情(据它所知)。

如果您想让它停止抱怨,也许您可​​以尝试添加退货:

return expect(dummyOutput.find('h1.screen-reader-text')).to.exist;
于 2017-07-20T07:45:21.797 回答