这是我用来对我的api进行提取调用的方法:
static sendJsonRequest(address, action, requestType, jsonData, queryParams, successCallback, errorCallback){
var finalURL = Client.getServiceURL( address, action, queryParams);
fetch(finalURL, {
method: requestType,
headers: {
'content-type': 'application/json; charset=utf-8',
'Authorization': 'Bearer ' + localStorage.getItem("access_token"),
'pragma': 'no-cache',
'cache-control': 'no-cache'
},
body: String(requestType).toLowerCase() === "get" ? undefined : JSON.stringify(jsonData)
})
.then(function(response) {
if (!response.ok) {
throw Error(response.statusText);
}
return response.json();
})
.then(function(jsonObj) {
successCallback(jsonObj);
})
.catch(function(err) {
errorCallback(err);
});
}
这就是我在我的组件中使用这个静态方法的方法:
componentDidMount(){
this.getPermissions();
}
getPermissions(){
this.setState({
Permissions_DATA: []
});
var permissionData = {userName: "xyz", resourceId : localStorage.getItem("target_resource_id")};
Client.sendJsonRequest("authData", "getPermData", "POST", permissionData, "", this.handleGetPermissions, this.handleError);
}
handleGetPermissions(response){
---
}
handleError(e) {
---
}
和初学者一样,我想编写测试用例来模拟这个获取调用,但我不知道如何编写相同的测试用例,任何人都可以帮我解决这个问题。
我也尝试使用Google搜索,但无法弄清楚任何事情。提前致谢
答案 0 :(得分:0)
有一个名为Fetch Mock的库,允许您模拟API响应,以便在测试中使用。
涵盖Client.sendJsonRequest
行为的测试示例可能类似于:
test('Client.sendJsonRequest - calls API endpoint', (done) => {
fetchMock.post('/the-url-to-test', { a mock response object... });
Client.sendJsonRequest('/api/address', 'update', 'POST');
expect(fetchMock.calls('/the-url-to-test').length).toBe(1);
});
您要编写的具体测试取决于您要测试的内容,但FetchMock文档应该有帮助。
您可以执行检查成功和错误回调的操作,但也可以使用间谍和存根。
答案 1 :(得分:0)