反应开玩笑:预期调用数:>= 1 收到的呼叫数:0



我正在开发一个React Native应用程序。但是它在控制台中给出如下错误:

FAIL  src/features/dashboard/components/jest-tests/ExpandedInstanceSchedule.test.js (20.428 s)
ExpandedInstanceSchedule Component
√ update on event (357 ms)
√ renders corectly (138 ms)
× renders corectly (210 ms)

● ExpandedInstanceSchedule Component › renders corectly

expect(jest.fn()).toHaveBeenCalledTimes(expected)

Expected number of calls: 1
Received number of calls: 0

78 |     fireEvent.click(button)
79 |     // console.log(button)
> 80 |     expect(UpadteInstances).toHaveBeenCalledTimes(1);
|                             ^
81 | //    expect(UpadteInstances.mock.calls[1][0]).toBe(1);
82 |   });
83 | });

at Object.<anonymous> (src/features/dashboard/components/jest-tests/ExpandedInstanceSchedule.test.js:80:29)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 2 passed, 3 total
Snapshots:   0 total
Time:        24.147 s
Ran all test suites matching /ExpandedInstanceSchedule/i.

Watch Usage: Press w to show more.

测试文件:

import { render} from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import ExpandedInstanceSchedule, {
UpadteInstances,
} from "../ExpandedInstanceShedule";
import { startTimeHandle } from "../ExpandedInstanceShedule";
import { configure, mount } from "enzyme";
import React from "react";
import { shallow } from "enzyme";
import { Provider } from "react-redux";
import configureMockStore from "redux-mock-store";
import thunk from "redux-thunk";
import Adapter from "enzyme-adapter-react-16";
import { fireEvent } from "@testing-library/react";
configure({ adapter: new Adapter() });
const mockStore = configureMockStore([thunk]);
describe("ExpandedInstanceSchedule Component", () => {
const store = mockStore({});
const instanceSchedule = {
id: "100",
repeat_every: "Every Weekday",
occurance: "Standard-E4s v3",
repeat_on: "Every Weekday",
date: "2002-02-21",
start_time: "2018-07-03T15:39:47.000+0530",
end_time: "2018-07-03T15:39:47.000+0530",
Repeat: "Every Weekday",
};
it("shoud call the onclick function", () => {
const UpadteInstances = jest.fn();
const { getByText } = render(
<Provider store={store}>
<ExpandedInstanceSchedule
onClick={UpadteInstances}
instanceSchedule={instanceSchedule}
/>
</Provider>
);
const button = getByText("Save Changes");
fireEvent.click(button);
expect(UpadteInstances).toHaveBeenCalledTimes(1);
});
});

你需要先找到组件,然后我建议使用onProps代替click。试试这个…

const wrapper = render(
<Provider store={store}>
<ExpandedInstanceSchedule
onClick={UpadteInstances}
instanceSchedule={instanceSchedule}
/>
</Provider>
);
wrapper.find('ExpandedInstanceSchedule').prop('onClick')

最新更新