我只是为了练习而用Jest编写了一些JavaScript测试.我编写了以下函数:
const divide = (a, b) => {
if (isNaN(a) || isNaN(b)) {
throw new Error("This function expect 2 numbers");
}
return a / b;
};
然后我编写了以下测试:
describe("Test divide operator", () => {
it("Check the divide function", () => {
expect(divide(10, 0)).toBe(Infinity);
expect(divide(0, 0)).toBe(NaN);
expect(divide(Infinity, Infinity)).toBe(NaN);
expect(divide(10, Infinity)).toBe(0);
expect(divide(10, -Infinity)).toBe(0); // THIS TEST FAILS
});
});
我收到以下错误:
expect(received).toBe(expected) // Object.is equality
Expected: 0
Received: -0
这是一个JavaScript错误吗?有人知道为什么在JavaScript中0可以是负数吗? 在我看来,仅仅为了通过测试而不得不写"-0"是有点尴尬的.
谢谢.