我正在为React项目编写单元测试代码。我正在尝试测试一种功能
//function aa
export const login = (values) => async => (dispatch) => {
let bodyFormData = new FormData();
bodyFormData.append('username', values.login);
bodyFormData.append('password', values.password);
return await axios({
method: 'post',
url: url,
data: bodyFormData
}
}
//aa test
it("Login Action", async () => {
afterEach(() => {
store.clearActions();
});
const values = {
login: "aaaaa",
password: "bbbbb"
};
const expectedResult = { type: "LOGIN_PASS" };
const result = await store.dispatch(login(values));
expect(result).toEqual(expectedResult);
});
在浏览器中,可以正常工作。但是当测试时,我得到以下错误
ReferenceError:未定义FormData
我尝试使用此模块但没有运气... https://www.npmjs.com/package/form-data
我不想只测试axios,我需要测试全部功能。
您将需要FormData
在单元测试中进行模拟,因为FormData
在node.js / jsdom环境中Web API不可用。
function FormDataMock() {
this.append = jest.fn();
}
global.FormData = FormDataMock
如果要在FormData
全局范围内模拟其他方法:
const entries = jest.fn()
global.FormData = () => ({ entries })
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句