我正在尝试为我的应用程序中的服务编写测试。
async post(url, params, headers) {
const csrfToken = await this.getCsrfToken().then(res => res.data);
headers.headers['X-CSRF-TOKEN'] = csrfToken;
// console.log(params);
return this.http.post(url, params, headers);
}
我遇到的问题是我收到一个未定义数据的错误。我相信这是指csrfToken调用(这是另一个将此令牌附加到标头的API调用)。
我不太确定如何在玩笑中模拟该常量,这样我才能真正开始求职。开玩笑有什么简单的方法吗?
答案 0 :(得分:1)
您不应该尝试模拟常量,而应该模拟getCsrfToken。尝试类似的东西:
import { getCsrfToken, post } from MyClass
it('should work', () => {
// mock method on your class
myMock = jest.fn()
myMock.mockReturnValueOnce(Promise.resolve({
data: {
fakeCsrf
}
})
MyClass.csrfToken = myMock
post('/test', {}, {})
expect(...);
});