您好,我正在为组件编写测试,并且已成功安装该组件。它给我类似
的警告session_client = dialogflow.SessionsClient()
event_input = dialogflow.types.EventInput()
query_input = dialogflow.types.QueryInput(event=event_input)
session_client.detect_intent(query_input=query_input)
下面是我的代码:
Component.test.js
console.error src/setupTests.js:17
Warning: An update to ReactFinalForm inside a test was not wrapped in act(...).
When testing, code that causes React state updates should be wrapped into act(...):
act(() => {
/* fire events that update state */
});
/* assert on the output */
This ensures that you're testing the behavior the user would see in the browser. Learn more at
in ReactFinalForm (at SalesTaxForm.component.js:53)
in div (at Modal.component.js:41)
in Transition (created by ForwardRef(Fade))
in ForwardRef(Fade) (at Modal.component.js:40)
in TrapFocus (created by ForwardRef(Modal))
in div (created by ForwardRef(Modal))
in ForwardRef(Portal) (created by ForwardRef(Modal))
in ForwardRef(Modal) (at Modal.component.js:27)
in Component (at SalesTaxForm.component.js:52)
in SalesTaxForm (at salesTaxForm.test.js:36)
in I18nextProvider (at salesTaxForm.test.js:35)
in Provider (created by WrapperComponent)
in WrapperComponent
Componnet.js
import React from 'react';
import { mount } from 'enzyme';
import { Provider } from 'react-redux';
import { act } from 'react-dom/test-utils';
import { I18nextProvider } from 'react-i18next';
import i18n from '../../../i18n';
import SalesTaxForm from './SalesTaxForm.component';
import taxTypes from '../../../mockData/taxTypes.json';
import configureStore from '../../../setUpMockStore';
const initialState = {};
const initialRecord = {
id: 194,
taxRate: 1.29,
taxType: 5,
taxNo: "87681 1522 RT0001",
startDate: new Date(2011, 10, 30),
endDate: new Date(2035, 10, 30)
};
const store = configureStore(initialState);
jest.mock('../../../store');
let wrapper;
const open = true;
const record = initialRecord;
const reloadData = jest.fn();
const setOpen = jest.fn(() => { });
const taxTypesMock = taxTypes;
const mountComponent = () => {
return mount(
<Provider store={store}>
<I18nextProvider i18n={i18n}>
<SalesTaxForm open={open} record={record} reloadData={reloadData}
setOpen={setOpen} taxTypes={taxTypesMock} />
</I18nextProvider>
</Provider>
);
};
describe('SalesTaxForm', () => {
it('should render the salesTaxForm', async () => {
wrapper = mountComponent();
});
});
在我的代码中,有validate函数是异步的,这导致了问题。任何人都可以帮助解决这个问题?预先感谢。