Javascript 不应按预期工作
我是个新手。总是使用断言,但我正在尝试新的选项 这个简单的测试不起作用,我很想知道为什么 Profile.js Profile_test.js 但我得到了以下错误: 侧面图 #建造师 1) 应该返回一个Profile对象 0通过(62毫秒) 1失败 1) 侧面图 #建造师 应返回一个配置文件对象:Javascript 不应按预期工作,javascript,should.js,assertj,Javascript,Should.js,Assertj,我是个新手。总是使用断言,但我正在尝试新的选项 这个简单的测试不起作用,我很想知道为什么 Profile.js Profile_test.js 但我得到了以下错误: 侧面图 #建造师 1) 应该返回一个Profile对象 0通过(62毫秒) 1失败 1) 侧面图 #建造师 应返回一个配置文件对象: AssertionError: expected Profile { 档案名称:“阿尔法”, 用户名:“Alfa da Silva”, 电邮:'alfa@beta.com', 语言:“java”
AssertionError: expected Profile {
档案名称:“阿尔法”,
用户名:“Alfa da Silva”,
电邮:'alfa@beta.com',
语言:“java”
}反对{
档案名称:“阿尔法”,
用户名:“Alfa da Silva”,
电邮:'alfa@beta.com',
语言:“java”
}
+预期-实际
at Assertion.fail (node_modules/should/cjs/should.js:275:17)
at Assertion.value (node_modules/should/cjs/should.js:356:19)
at Context.<anonymous> (test/Profile_test.js:12:19)
Assertion.fail(node_modules/should/cjs/should.js:275:17)
在Assertion.value(node_modules/should/cjs/should.js:356:19)
在上下文中。(test/Profile_test.js:12:19)
这里怎么了?我错过什么了吗?是的。从
应.equal(实际、预期、[消息])
Node.js标准assert.equal
从中我们知道assert.equal(…)
使用抽象相等比较(=)测试实际参数和预期参数之间的浅强制相等性
看起来您需要使用eql(..)
或deepEqual(..)
。差不多
profile.should.be.eql(valid);
您必须使用profile.should.match。因为两个物体的原型是不同的。你可以从中获得信息
at Assertion.fail (node_modules/should/cjs/should.js:275:17)
at Assertion.value (node_modules/should/cjs/should.js:356:19)
at Context.<anonymous> (test/Profile_test.js:12:19)
profile.should.be.eql(valid);
let should = require('should');
let Profile = require('../lib/entities/Profile');
describe('Profile', function() {
describe('#constructor', function() {
it('should return a Profile object', function() {
let profile = new Profile('alfa','Alfa da Silva','alfa@beta.com','java');
let valid = { profile_name: 'alfa', user_name: 'Alfa da Silva', email: 'alfa@beta.com', language: 'java'};
profile.should.match(valid);
});
});
});