酶子元素没有“ find()”

时间:2019-02-21 17:10:16

标签: enzyme

我有一个简单的测试,我在其中搜索'.shop'元素,返回其中两个,然后我要获取第一个元素并查看一个嵌入式元素:'.shop__title'。

查看代码:

describe('Shop Page', () => {
    let wrapper

    let store = createStore(reducers, mockStoreData);

    beforeEach(() => {
        wrapper = mount(
            <Provider store={store}>
                <Dashboard />
            </Provider>,
        );
    });
    afterEach(() => {
        wrapper.unmount();
    });


    it('test ', () => {
        let elems = wrapper.find('.shop');
        expect(elems.length).toBe(2); //yes, i have two shops!

        let e = elems.get(0);
        e.find('.shop__title') //find function does not exist!!!
    })
});

我不太确定这个'e'元素是什么(我正在查看的数组中的第一个元素),但是我的IDE向我显示了这一点:

enter image description here

这是什么物体?如何在此元素上使用“查找”和“模拟”功能?

1 个答案:

答案 0 :(得分:1)

您需要使用at而不是get

let e = elems.at(0);
e.find('.shop__title') //find function does not exist!!!

问题是get返回了ReactElement,但是at返回了具有ShallowWrapper方法的find