reactjs - 如何用 Jest 和 enzyme 来使用 Relay Modern 进行测试?

标签 reactjs graphql jestjs enzyme relaymodern

如何用jest和enzyme测试这种文件...

   

class App extends React.Component{
    constructor(){
        super()
    }

    render(){
        const { viewer, children, isLoading } = this.props
        return(
          <div>
              <div id="container">
                {children}
              </div>
              {isLoading && <Loading />}
          </div>  
        );
    }
}

export default createFragmentContainer(
    App,
    graphql`
        fragment App_viewer on User{
            id
            email   
        }
    `
)

最佳答案

你可以做这样的事情

const React = require('React');
const App = require('App.react');
jest.mock('react-relay', () => ({
  createFragmentContainer: App =>
    App,
}));

const {shallow} = require('enzyme');
const {shallowToJson} = require('enzyme-to-json');

describe('App', () => {
  it('renders the dashboard section correctly', () => {
    const wrapper = shallow(
      < App
        title="Test Dashboard Section"
        charts={[]}
      />,
    );
    expect(shallowToJson(wrapper)).toMatchSnapshot();
  });

我们需要模拟react-relay。正如刚才提到的。

关于reactjs - 如何用 Jest 和 enzyme 来使用 Relay Modern 进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55586094/

相关文章:

javascript - 如何增加 Semantic UI 中各个选项的高度?

reactjs - 何时在 Gatsby 中使用 <StaticQuery/> 与页面查询?

reactjs - getServerSideProps 访问当前浏览器 url

javascript - redux-persist - 何时持久化 reducer ?

javascript - 如何将 API 数据提取到 Graphql 模式

reactjs - react 与 enzyme : why isn't beforeEach() working?

javascript - 如何将 lint-staged 与 jest --collectCoverageFrom 一起使用

javascript - 使用 useReducer/useContext 和 React-Testing-Library 时为 "TypeError: dispatch is not a function"

javascript - React ref 在 Material ui 的自定义输入中给出了未定义

javascript - useLazyQuery 在循环和 Promise.all 内不起作用