我创建了一个屏蔽数据的服务,并编写了一个Jasmine测试来比较实际对象和预期对象。
运行测试时,我对从服务返回的actual
对象没有定义。尽管我在控制台日志console.log(JSON.stringify(maskedData));
中定义了maskedData
。
LOG LOG: '{"handle":"#######@#####.com","displayName":"####ane","iss":"####:###.###.##.#"}'
Expected undefined to equal <jasmine.objectContaining(Object({ handle: '#######@#####.com',displayName: '####ane' }))>.
问题:
为什么服务返回对象在测试中评估为未定义但在控制台日志中定义?
我确实认为这可能是一个异步错误,因此在测试期间未定义值,但是由于控制台记录该值有效,所以我认为不是。
这是有关测试的要点:
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',}),);
});