问题描述
我想测试异步 mobx 操作,但不知道如何创建商店的模拟并测试 API。
商店
import { makeObservable,observable,action } from "mobx";
import axios from "axios";
export default class Store {
@observable response = false;
@observable email = null;
constructor() {
makeObservable(this);
}
@action submit = async (userInput) => {
try {
const res = await axios.post('/users',{ user: userInput,searchType: 'username' });
this.email = res.data.userDetails.user;
this.response = true;
}
catch (err) {
console.log(err);
}
}
}
规范文件
import mockAxios from 'jest-mock-axios';
const usernameStore = new Store();
it("setstore value",async () => {
const data = { user: 'username123',searchType: 'username' };
const url = '/users';
const result = await mockAxios.post.mockReturnValueOnce(data);
usernameStore.submitUserEmail('username123');
expect(mockAxios.post).toHaveBeenCalledWith(url);
expect(result).toBe(data);
});
在上面的代码段中,我无法模拟 @observable 值(响应和电子邮件)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)