测试 Model
上一小节中我们学习了如何使用 Model。
这一小节里我们来测试 Model。
跟测试组件中一样,不需要做任何配置,可以直接给 Model 写测试用例。
以 models/contacts
为例,我们创建对应的 .test
文件:
- macOS
- Windows
touch src/contacts/models/contacts.test.ts
ni 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
,可以看到测试报告。
本小节的代码可以在这里查看。