Небольшой возврат фермента неопределен для компонента без рендеринга - PullRequest
0 голосов
/ 01 июня 2018

Это мой js-файл

import React, { Component } from 'react';

export default class ProjectStore extends Component {
  static lodingCount = 0;
  constructor(props) {
    super(props);
  }

  static setLodingCount(countValue){
    ProjectStore.lodingCount = countValue;
  }

  static getLodingCount(){
    return ProjectStore.lodingCount;
  }
}

Я написал тестовый пример для того же, как показано ниже:

import React from 'react';
import {shallow} from 'enzyme';
import ProjectStore from '../projectStore.js';

describe('<ProjectStore />', () => {
  it('should return loading count', () => {
    const ProjectStore = shallow(<ProjectStore />);
    ProjectStore.setLodingCount(2);
    expect(ProjectStore.lodingCount).toEqual(2);
  });
});

, но когда я выполнил npm test, он вернул:

ReferenceError: ProjectStore is not defined

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 01 июня 2018

При тестировании статического метода из класса вам не нужно отображать этот компонент.Все, что вам нужно сделать, это вызвать этот статический метод из этого класса, как показано ниже:

import React from 'react';
import Adapter from 'enzyme-adapter-react-16';

import ProjectStore from './projectStore.js';

describe('<ProjectStore />', () => {
  it('should return loading count', () => {
    ProjectStore.setLodingCount(2);
    expect(ProjectStore.lodingCount).toEqual(2);
  });
});

Вы можете узнать больше из этого ответа .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...