Javascript 即使结果正确,摩卡测试也会失败

Javascript 即使结果正确,摩卡测试也会失败,javascript,node.js,mocha.js,Javascript,Node.js,Mocha.js,我正在做一个javascript测试,我不知道为什么会失败,因为我所有的测试都返回正确的结果 这是我的app.js module.exports = function (array){ var firstBigNumber = 0; var secondBigNumber = 0; if(array.length === 0) return 0; for(var index = 0; index < array.length; index++){

我正在做一个javascript测试,我不知道为什么会失败,因为我所有的测试都返回正确的结果

这是我的app.js

module.exports = function (array){
    var firstBigNumber = 0;
  var secondBigNumber = 0;

    if(array.length === 0) return 0;

      for(var index = 0; index < array.length; index++){

        if(parseInt(array[index]) === array[index]){
                if(array[index] > 0){
                if(array[index] > firstBigNumber){
                    secondBigNumber = firstBigNumber;
                    firstBigNumber = array[index];
                }else if (array[index] > secondBigNumber) {
                            secondBigNumber = array[index];
                    }
             } 
         }
         else{
                        secondBigNumber = 0;
                    firstBigNumber = 0;
         }
        }
    return [firstBigNumber,secondBigNumber];
}
    const assert = require('assert');
const app = require('../app');

describe('App', function() {
  describe('SimpleTest2', function(){
      it('Empty array should return 0', function(){
          var array = [];
          let result = app(array);
          assert.equal(result,0);
      });
      it('Ignore float elements', function(){
        var array = [1.2, 2, 3];
        assert.equal(app(array),[3,2]);
      });
      it('Ignores non-numerical values in array', function(){
        var array = ['hei', 2, 3, 4, false];
        assert.equal(app(array),[4,3]);
      });          
我收到的错误是断言错误[ERR\u Asertion]。 以下是我的一些错误:


这很可能发生,因为
[3,2]=[3,2]=false
。(欢迎使用javascript)

我想你要找的东西和查伊斯的相似。 以下是我的发现:

尝试.eql或.deepEql而不是.equal。那时我能够得到预期的结果


查看-这是一个很好的参考资料。

这很可能是因为
[3,2]=[3,2]=false
。(欢迎使用javascript)

我想你要找的东西和查伊斯的相似。 以下是我的发现:

尝试.eql或.deepEql而不是.equal。那时我能够得到预期的结果


查看-这是一个非常好的参考。

你应该使用
assert.deepstriefqual()
而不是
assert.equal()
:是的,它工作了,谢谢你你应该使用
assert.deepstriefqual()
而不是
assert.equal()
:是的,谢谢你javascript的有趣之处。讽刺是有意的。javascript中相当有趣的一面。讽刺是有意的。