使用 Jasmine toEqual 未定义预期对象
Expected object undefined using Jasmine toEqual
我创建了一个服务来屏蔽数据并编写了一个 Jasmine 测试来比较实际对象和预期对象。
当我 运行 测试时,我在 actual
对象 return 从服务中得到未定义。虽然当我控制台记录它时 console.log(JSON.stringify(maskedData));
定义了 maskedData
。
LOG LOG: '{"handle":"#######@#####.com","displayName":"####ane","iss":"####:###.###.##.#"}'
Expected undefined to equal <jasmine.objectContaining(Object({ handle: '#######@#####.com', displayName: '####ane' }))>.
问题:
为什么服务 return 对象在测试中评估为未定义但在控制台日志中定义?
我确实认为这可能是一个异步错误,因此在测试期间未定义值,但由于控制台记录该值有效,我不这么认为。
这是相关测试的要点:
const mockAddUserAction = {
type: 'AddUser',
payload: {
handle: 'tedjane@five.com',
displayName: 'tedJane',
iss: 'http:192.168.12.1',
},
};
it('should mask PII user action.payload data with nested properties', async () => {
const maskedData = service.maskPiiData(mockAddUserAction);
console.log(JSON.stringify(maskedData));
expect(maskedData.payload).toEqual(
jasmine.objectContaining({
handle: '#######@#####.com',
displayName: '####ane',
}),
);
});
expect
指令在服务returns结果之前被调用。您需要同步异步服务调用。尝试将 await
添加到您调用服务的行。
const maskedData = await service.maskPiiData(mockAddUserAction);
我创建了一个服务来屏蔽数据并编写了一个 Jasmine 测试来比较实际对象和预期对象。
当我 运行 测试时,我在 actual
对象 return 从服务中得到未定义。虽然当我控制台记录它时 console.log(JSON.stringify(maskedData));
定义了 maskedData
。
LOG LOG: '{"handle":"#######@#####.com","displayName":"####ane","iss":"####:###.###.##.#"}'
Expected undefined to equal <jasmine.objectContaining(Object({ handle: '#######@#####.com', displayName: '####ane' }))>.
问题:
为什么服务 return 对象在测试中评估为未定义但在控制台日志中定义?
我确实认为这可能是一个异步错误,因此在测试期间未定义值,但由于控制台记录该值有效,我不这么认为。
这是相关测试的要点:
const mockAddUserAction = {
type: 'AddUser',
payload: {
handle: 'tedjane@five.com',
displayName: 'tedJane',
iss: 'http:192.168.12.1',
},
};
it('should mask PII user action.payload data with nested properties', async () => {
const maskedData = service.maskPiiData(mockAddUserAction);
console.log(JSON.stringify(maskedData));
expect(maskedData.payload).toEqual(
jasmine.objectContaining({
handle: '#######@#####.com',
displayName: '####ane',
}),
);
});
expect
指令在服务returns结果之前被调用。您需要同步异步服务调用。尝试将 await
添加到您调用服务的行。
const maskedData = await service.maskPiiData(mockAddUserAction);