Jestjs 如何使用Jest+测试React组件中的函数;酶?

Jestjs 如何使用Jest+测试React组件中的函数;酶?,jestjs,enzyme,Jestjs,Enzyme,我正在使用测试库/jest dom+Ezyme进行单元测试。这里我需要测试React函数中的函数 import React, { useEffect } from 'react'; function Component1() { useEffect( async () => { fetchSomeData(); }, []) const fetchSomeData = async () =>{ console.log('

我正在使用测试库/jest dom+Ezyme进行单元测试。这里我需要测试React函数中的函数

import React, { useEffect } from 'react';

function Component1() {

    useEffect( async () => {
         fetchSomeData();
    }, [])

    const fetchSomeData = async () =>{
        console.log('fetchSomeData')

    }

    return <div>Component1</div>;
}

export default Component1;


import React,{useffect}来自“React”;
函数组件1(){
useffect(异步()=>{
fetchSomeData();
}, [])
const fetchSomeData=async()=>{
console.log('fetchSomeData')
}
返回组件1;
}
导出默认组件1;
和我的测试文件:

Enzyme.configure({adapter:new Adapter()})

describe('Name of the group', () => {

    it('should ', () => {
        const wrapper = shallow( <Component1/>)
        expect(wrapper.exists());
    });

});
Enzyme.configure({adapter:newadapter()})
描述('组名称',()=>{
它('应该',()=>{
常量包装器=浅()
expect(wrapper.exists());
});
});
事实上,我不需要测试正确性,我只需要用笑话来描述代码。但无论我尝试了什么,似乎都没有被玩笑掩盖:

您无法访问组件外部的局部变量/函数。测试它造成的影响。在这个问题上,它什么都不做,所以它可能与实际代码不同。你的意思是,我可以将函数放入useEffect并测试它?我的意思是,你需要测试它对组件的作用,而不直接调用它。你没有展示它是如何使用的。而且它不需要是组件的一部分,因为它不使用其范围内的任何内容。我需要进行测试以模拟在useEffect中获取一些数据,我的第一个问题是,它不包含在jest中,正如图所示。shallow不支持useEffect,请使用mount。您可以在测试中进行相同数量的延迟,
wait null;预期(…)
。fetchSomeData没有做任何有用的事情。在这种情况下,您可以监视console.log并断言它已被调用。