expect(str1).to.equal(str2)即使在str1不等于str2时也会通过

问题描述 投票:0回答:1

我需要颠倒非常特定格式的json文件中“对象”的顺序。

我写了一个测试来比较expectedResult和实际结果。

测试expect(result).to.equal(expectedResult);正在通过,即使他们有不同的价值观。我通过将两个变量记录到控制台来确认这一点。为什么会这样?

结果的价值

"result": [
   {
      "courses_dept": "math",
      "courses_avg": 77.00
   },
  {
      "courses_dept": "epse",
      "courses_avg": 88.50
  },
  {
      "courses_dept": "math",
      "courses_avg": 93.00
  },
  {
      "courses_dept": "epse",
      "courses_avg": 92.19
  }
    ]

预期结果的价值:

"result": [
    {
        "courses_dept": "epse",
        "courses_avg": 92.19
    },
    {
        "courses_dept": "math",
        "courses_avg": 93.00
    },
    {
      "courses_dept": "epse",
      "courses_avg": 88.50
    },
    {
        "courses_dept": "math",
        "courses_avg": 77.00
    }
    ]
}

这是代码。

describe("reversify", () => {
  it("Should reverse file", ()=> {
      let result = "";
      let expectedResult = "";

      try{
        let resultPromise = reversify("./test/json_files/inputs/t1.json");
        let expectedResultPromise = readJsonFile("./test/json_files/outputs/t1.json");

        //AS OF NOW THIS JUST READS THE FILE, HENCE TEST SHOULD FAIL
        resultPromise.then((data) =>{
            console.log('Result is: ', data);
            result = JSON.stringify(data);
        });

        expectedResultPromise.then(data => {
            expectedResult = JSON.stringify(data);
            console.log("Expected Result is: ",data);
        });

      } catch(err) {
        throw (err);
      } finally {
          expect(result).to.equal(expectedResult);
      }
  });
});
javascript node.js mocha bdd chai
1个回答
1
投票

你的expect声明将在解决承诺之前执行,使得resultexpectedResult的值在执行时等于""。您可以使用await等待承诺得到解决。

© www.soinside.com 2019 - 2024. All rights reserved.