跳转到主文档

测试 Model

上一小节中我们学习了如何使用 Model。

这一小节里我们来测试 Model。

测试组件​​​中一样,不需要做任何配置,可以直接给 Model 写测试用例。

models/contacts 为例,我们创建对应的 .test 文件:

touch src/contacts/models/contacts.test.ts

在测试用例中可以使用 Modern.js 提供的 Model 模拟,可以调用这个对象的方法写断言。

我们直接使用 createStore API 来编写测试文件,示例内容如下:

import { createStore } from '@modern-js/runtime/testing';
import contactsModel from './contacts';

const mockItem = {
avatar: '',
name: '李华',
age: '16',
email: 'lihua@gmail.com',
archived: false,
};

describe('test contracts model', () => {
it('actions works well', async () => {
const store = createStore();
const [state, actions] = store.use(contactsModel);

state.items.push(mockItem);
expect(store.use(contactsModel)[0].items.length).toBe(1);
expect(store.use(contactsModel)[0].items[0].archived).toBeFalsy();

await actions.archive('lihua@gmail.com');
expect(store.use(contactsModel)[0].items[0].archived).toBeTruthy();
});
});

执行 pnpm run test,可以看到测试报告。


本小节的代码可以在这里查看