我试图找出测试失败的原因 - 可能是因为安全令牌变量的值未传递到mocha测试中。我不知道如何通过它。所有关于测试的教程仅适用于返回'Hello World'字符串,但没有任何实际意义。并且有人可以告诉我,我可以在这种类型的功能中测试什么,以及如何。
原始功能:
self.parse
以下是我对此功能的测试:
export function getUserDetails() {
let securityToken = JSON.parse(sessionStorage.getItem('sectoken'));
return reqwest({
url: 'http://api.mywebsite.com/api/Account/UserInfo',
method: 'GET',
crossOrigin: true,
headers: {
Authorization: `Bearer ${securityToken.access_token}`,
},
}).then((response) => JSON.stringify(response));
}
结果我收到错误:
//getUserDetails
describe('getUserDetails', () => {
it('Should return user details of curently logged in user',() => {
getUserDetails().then(function(response){
console.log(securityToken.access_token);
response.toExist().toBeA('string');
});
});
});
答案 0 :(得分:0)
您也必须返回securityToken
。否则在功能之外将无法访问。
export function getUserDetails() {
let securityToken = JSON.parse(sessionStorage.getItem('sectoken'));
return [securityToken, reqwest({
url: 'http://api.mywebsite.com/api/Account/UserInfo',
method: 'GET',
crossOrigin: true,
headers: {
Authorization: `Bearer ${securityToken.access_token}`,
},
}).then((response) => JSON.stringify(response))];
}
然后在测试功能中:
getUserDetails().then(function(securityToken, response){
console.log(securityToken.access_token);
response.toExist().toBeA('string');
});
答案 1 :(得分:0)
为了使测试工作,我必须在每个测试函数上调用第一个loginUser函数,并将令牌返回到它:
//getUserDetails
describe('getUserDetails', () => {
it('Should return user details of curently logged in user',() => {
loginUser(rooturl,'abc@abc.pl', 'Password!1232').then(function(token){
getUserDetails().then(function(userDetails){
expect(userDetails).toExist();
});
});
});
});
谢谢你们!