- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个服务来屏蔽数据并编写了一个 Jasmine 测试来比较实际对象和预期对象。当我运行测试时,我在从服务返回的 actual
对象上得到了 undefined 。虽然当我控制台记录它时 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',
}),
);
});
最佳答案
expect
指令在服务返回结果之前被调用。您需要同步异步服务调用。尝试将 await
添加到您调用服务的行。
const maskedData = await service.maskPiiData(mockAddUserAction);
关于javascript - 使用 Jasmine toEqual 未定义预期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58759227/
我正在尝试为我的范围变量之一编写规范,但即使它们匹配也失败了。 控制台: Expected [ { id: 1, name: 'Browns', created_at: '2014-08-06T2
In this Jasmine test我比较了两个几乎相同的对象,唯一的区别是第二个对象多了一个未定义的成员。 describe('Testing', function () { it('sho
我查找了 jasmine 源代码,但没有正确找到 toEquals 的实现,我找到的内容如下,在 https://github.com/jasmine/jasmine/blob/master/lib/
目前,我有一个函数,有时会返回一个内部包含一些函数的对象。当使用 expect(...).toEqual({...}) 时,它似乎与那些复杂的对象不匹配。具有函数或 File 类(来自输入类型文件)的
我有一个像这样的 Jasmine 测试: expect(array.length).toEqual(0); 这就过去了。出于好奇,我将其更改为: expect(array.length).toEqua
我正在使用 expect(item).toEqual(otherItem)。根据我读过的所有内容,expect({ a: "a", b: undefined }).toEqual({ a: "a"})
我正在尝试使用函数.not.toEqual() 来测试两个对象是否不同。 据我了解,这个函数应该对我的对象的值进行递归比较。尽管如此,我似乎无法得到我期望的结果。 这是在我的终端中打印出来的内容的摘录
我有以下 Jasmine 单元测试: describe('getAlertsByUserId', function () { it('should get alerts from api/Al
我正在尝试使用 jasmine 测试我的组件,但我不确定为什么我失败 这是y代码 https://stackblitz.com/edit/angular-bup8gb describe('initia
我必须通过以下声明文本: expect(accessPolicyPage.accessPolicyName).toEqual(element.all(by.binding("pol.name")).g
我创建了一个服务来屏蔽数据并编写了一个 Jasmine 测试来比较实际对象和预期对象。当我运行测试时,我在从服务返回的 actual 对象上得到了 undefined 。虽然当我控制台记录它时 con
在了解了 comparison operators === and == 之间的差异之后在 Javascript 中,Jasmines 的相等概念与任何一个都不对应,这让我感到非常惊讶。例如,以下测试
我正在关注 Dan Abramov 关于 Redux 的教程。 ( https://egghead.io/lessons/javascript-redux-avoiding-object-mutati
我正在尝试为 React JS 运行单元测试 - 使用 jest/enzyme。 目前测试失败。不太清楚为什么,也许我没有正确调用 expect(wrapper.find)。这是我测试的一部分: F
我正在编写一系列测试来演示“this”在不同上下文中的值(value)。 这是我当前的测试套件: describe("this keyword", function(){ it('return
我明白为什么以下返回 false... expect({}).toBe({}); 我明白了为什么以下返回 true... expect({}).toEqual({}); 但为什么下面的为真? expe
我是 jest 的新手,所以我不确定这是否是我的错。所以这是我的测试用例 it('should throw error if wrong email or phone number is pr
我一直在尝试比较 jasmine 中的两个 javascript 对象。但我收到错误对象读取没有方法调用。 describe("AutoEditor", function() { var widg
Jest 文档如下: toBe just checks that a value is what you expect. It uses === to check strict equality. 对
我是 Jasmine 的新手,遇到过我期望是 String 或 null 的情况。我试图在 toEqual 中执行 or ,但我看到了一些奇怪的结果,这让我相信我正在以错误的方式处理这个问题。处理这种
我是一名优秀的程序员,十分优秀!