即使 str1 不等于 str2,expect(str1).to.equal(str2) 也会通过
expect(str1).to.equal(str2) passes even when str1 is not equal to str2
我需要颠倒 json 非常特定格式的文件中 "objects" 的顺序。
我写了一个测试来比较 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);
}
});
});
您的 expect
语句将在解析承诺之前执行,使 result
和 expectedResult
的值在执行时都等于 ""
。您可以使用 await
等待承诺得到解决。
我需要颠倒 json 非常特定格式的文件中 "objects" 的顺序。
我写了一个测试来比较 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);
}
});
});
您的 expect
语句将在解析承诺之前执行,使 result
和 expectedResult
的值在执行时都等于 ""
。您可以使用 await
等待承诺得到解决。