当我尝试测试组件的快照时,我一直使用TypeError: Network request failed
这是组件
import {GetAllUsersPost} from './postdata';
class ManageUsers extends React.Component{
render(){
return(
{...}
);
}
componentDidMount(){
GetAllUsersPost(UserProfile.getId()).then((result) => {
this.setState({
parsed:result,
loading:false
})
});
}
}
这是邮政数据
export function GetAllUsersPost(id) {
const json = JSON.stringify({id: id})
return new Promise((resolve, reject) => {
fetch(BaseURL + 'allusers', BdRequest(json)).then((response) => response.json()).then((res) => {
resolve(res);
}).catch((error) => {
reject(error);
});
});
}
这是测试文件(\ src__tests __ \ ManageUsers.test.jsx)
import React from 'react';
import ManageUsers from '../component/ManageUsers';
import Adapter from 'enzyme-adapter-react-16';
import Enzyme, {shallow,mount} from 'enzyme';
Enzyme.configure({adapter:new Adapter()});
describe("ManageUsers", ()=>{
const wrapper = shallow(<ManageUsers/>);
const instance = wrapper.instance();
let response;
test("loading()",()=>{
wrapper.setState({loading:false})
response = JSON.stringify("")
expect(JSON.stringify(instance.loading())).toBe(response);
})
});
我知道我的错误是由于promise(当酶尝试使组件变浅时),但我无法使其起作用...
谢谢
答案 0 :(得分:0)
您的测试必须设置为异步测试。例如
@Dependent
为清楚起见进行编辑-请注意,这显然未经测试,但是您需要查找的是render方法和状态中的内容,因为这是您对结果所做的全部工作。
it('should do something', async () => {
const result = await myAsyncMethod();
});