Javascript Node.js assert.deepEqual 2个值

Javascript Node.js assert.deepEqual 2个值,javascript,node.js,unit-testing,assert,mocha.js,Javascript,Node.js,Unit Testing,Assert,Mocha.js,我有一个发送2个对象的some函数: function A(){ var message = { cmd: 'one', msg: { type: 'test', id: 1 } sendTest(message) message = { cmd: 'two',

我有一个发送2个对象的some函数:

    function A(){
        var message = {
            cmd: 'one',
            msg: {
                type: 'test',
                id: 1
        }

        sendTest(message)
        message = {
             cmd: 'two',
             msg: {
                 type: 'test_a',
                 id: 2
        }
        sendTest(message)
}
我可以在单元测试中使用assert.deepEqual来测试两个不同对象的“消息”吗

可能看起来像是
assert.deepEqual(message,test_message1 | | test_message2)


(assert.deepEqual(message,test_message1)| assert.deepEqual(message,test_message2))

Chai使用deep eql库执行深度相等检查。这显示了如何使用它来检查对象是否与集合中的一个对象完全相等。这里我们测试的对象是
q
,我们希望确保它至少与
message1
message2
中的一个深度相等。将
q
更改为某个随机值以查看测试失败。编写代码是为了方便地对照可能的消息的较长列表进行检查

var assert = require("chai").assert;
var eql = require("deep-eql");

var message1 = {
    cmd: 'one',
    msg: {
        type: 'test',
        id: 1
    }
};

var message2 = {
    cmd: 'two',
    msg: {
        type: 'test_a',
        id: 2
    }
};

var q = {
    cmd: 'one',
    msg: {
        type: 'test',
        id: 1
    }
};

var found;
var candidates = [message1, message2];

for(var i = 0; !found && i < candidates.length; ++i)
    if (eql(candidates[i], q))
        found = candidates[i];

assert.isDefined(found, "did not find a match");
var assert=require(“chai”).assert;
var eql=需要(“深度eql”);
var message1={
指令:“一”,
味精:{
类型:“测试”,
身份证号码:1
}
};
var message2={
命令:“两个”,
味精:{
类型:'test_a',
身份证号码:2
}
};
变量q={
指令:“一”,
味精:{
类型:“测试”,
身份证号码:1
}
};
var发现;
var候选者=[message1,message2];
对于(变量i=0;!已找到(&i
Chai使用deep eql库执行深度相等检查。这显示了如何使用它来检查对象是否与集合中的一个对象完全相等。这里我们测试的对象是
q
,我们希望确保它至少与
message1
message2
中的一个深度相等。将
q
更改为某个随机值以查看测试失败。编写代码是为了方便地对照可能的消息的较长列表进行检查

var assert = require("chai").assert;
var eql = require("deep-eql");

var message1 = {
    cmd: 'one',
    msg: {
        type: 'test',
        id: 1
    }
};

var message2 = {
    cmd: 'two',
    msg: {
        type: 'test_a',
        id: 2
    }
};

var q = {
    cmd: 'one',
    msg: {
        type: 'test',
        id: 1
    }
};

var found;
var candidates = [message1, message2];

for(var i = 0; !found && i < candidates.length; ++i)
    if (eql(candidates[i], q))
        found = candidates[i];

assert.isDefined(found, "did not find a match");
var assert=require(“chai”).assert;
var eql=需要(“深度eql”);
var message1={
指令:“一”,
味精:{
类型:“测试”,
身份证号码:1
}
};
var message2={
命令:“两个”,
味精:{
类型:'test_a',
身份证号码:2
}
};
变量q={
指令:“一”,
味精:{
类型:“测试”,
身份证号码:1
}
};
var发现;
var候选者=[message1,message2];
对于(变量i=0;!已找到(&i
两个断言有什么不对<代码>断言.deepEqual(消息,测试消息1);assert.deepEqual(message,test_message2)在这种情况下,2个断言中的1个完全失败。我希望“通用”解决方案您可以在单个测试中使用
assert
多少次,您不需要限制自己在每个测试用例中只使用一个assert。“通用解决方案”是根据需要多次调用
assert
!我不限制自己在每个测试中使用一个断言。我希望测试一下,当实际的“消息”将是两个预期的“消息”之一时,这两个断言有什么错<代码>断言.deepEqual(消息,测试消息1);assert.deepEqual(message,test_message2)在这种情况下,2个断言中的1个完全失败。我希望“通用”解决方案您可以在单个测试中使用
assert
多少次,您不需要限制自己在每个测试用例中只使用一个assert。“通用解决方案”是根据需要多次调用
assert
!我不限制自己在每个测试中使用一个断言。我只想测试一下,实际的“消息”将是两个预期的“消息”之一