Admin on rest AOR-简单列表的单元测试
我正在使用aorv1.4.0并试图编写一个单元测试来测试一行简单列表的呈现。但控制台上不会以Admin on rest AOR-简单列表的单元测试,admin-on-rest,Admin On Rest,我正在使用aorv1.4.0并试图编写一个单元测试来测试一行简单列表的呈现。但控制台上不会以HTML import * as React from 'react'; import * as ReactDOM from 'react-dom'; import * as Renderer from 'react-test-renderer'; import { createStore } from 'redux'; import { Provider } from 'react-redux'; im
HTML
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import * as Renderer from 'react-test-renderer';
import { createStore } from 'redux';
import { Provider } from 'react-redux';
import {render, shallow, mount} from 'enzyme';
import {Datagrid, List, Admin, Resource} from 'admin-on-rest';
import {CategoryList} from '../Categories';
describe('Categories', ()=>{
it('renders category list correctly', ()=>{
const wrapper = mount(
<Admin title="Mock Admin Client" restClient={ jest.fn().mockImplementation(()=>{
return new Promise((res, rej)=>{
res({
total : 1,
data: ()=>{
return {
id: "0300b4cf-4888-4e73-b4e1-25cf4686e05c",
name: "cat2",
displaySequence: 121
}
}
});
});
})}>
<Resource options={{ label: 'Categories' }} name="category" list={CategoryList}/>
</Admin>
);
console.log(wrapper.html());//<-- does not log anything
});
});
import*as React from'React';
从“react dom”导入*作为react dom;
从“反应测试渲染器”导入*作为渲染器;
从“redux”导入{createStore};
从'react redux'导入{Provider};
从“酶”导入{render,shall,mount};
从“rest上的管理员”导入{Datagrid,List,Admin,Resource};
从“../Categories”导入{categorilylist};
描述('类别',()=>{
它('正确呈现类别列表',()=>{
常量包装器=装入(
{
返回新承诺((res,rej)=>{
res({
总数:1,
数据:()=>{
返回{
id:“0300b4cf-4888-4e73-b4e1-25cf4686e05c”,
名称:“cat2”,
显示顺序:121
}
}
});
});
})}>
);
console.log(wrapper.html());//(
);
有人可以修改并建议如何使用JEST
模拟restClient吗?我想这就是我要出错的地方
另外,是否有更好的方法来单独测试列表?由于您的restClient是异步的,您必须等待下一个滴答声才能得到回报,请参见为什么
数据
是restClient中的一个函数?它应该是一个对象数组。
export const CategoryList = (props: any) => (
<List {...props} perPage={50}>
<Datagrid>
<TextField source="id" />
<TextField source="name" />
<TextField source="displaySequence" />
<EditButton/>
<ShowButton/>
</Datagrid>
</List>
);