- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 Jasmine 单元测试:
describe('getAlertsByUserId', function () {
it('should get alerts from api/Alert/bob when the username is bob', inject(function (AlertService, $httpBackend) {
$httpBackend.when('GET', 'api/Alert/bob').respond(mockAlerts);
var alerts = AlertService.getAlertsByUserId('bob');
$httpBackend.flush();
expect(alerts).toEqual(mockAlerts);
}));
});
mockAlerts 定义如下:
[{
date: new Date(2013, 5, 25),
description: '',
alertType: 'type1',
productDescription: 'product',
pack: 12,
size: 16,
unitOfMeasure: 'OZ',
category: 'cat1',
stage: 'C',
status: 'I'
}]
当我在 Karma 中执行测试时,我得到“Expected [ {date:...etc }] to equal [ {date:...etc }]。我已经验证了两个对象是相同的(属性/值)。我尝试删除 Date 对象,但无济于事。有人吗?
最佳答案
toEqual
将检查引用是否相等,即警报对象与 mockAlerts 是同一对象。您要检查的是对象相等性。有几种方法可以做到这一点。
首先你可以将你的对象转换成json
expect(JSON.stringify(alerts)).toEqual(JSON.stringify(mockAlerts));
这可能在大多数情况下都有效,但它确实取决于序列化程序以完全相同的方式处理对象。
另一种方法是使用 angular.equals。
expect(angular.equals(alerts, mockAlerts)).toBeTruthy();
这可能不太好读,但应该能很好地工作。
关于javascript - AngularJS 服务单元测试在 toEqual 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433447/
我正在尝试为我的范围变量之一编写规范,但即使它们匹配也失败了。 控制台: 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 ,但我看到了一些奇怪的结果,这让我相信我正在以错误的方式处理这个问题。处理这种
我是一名优秀的程序员,十分优秀!