我试图在 ts 中创建一个笑话测试,结果应该等于 0。这似乎在 -0 上失败。
test("zero equals fails", () => {
const actual = -0
const expected = 0
// expect(actual).toBe(expected)
// expect(actual).toStrictEqual(expected)
// expect(actual).toEqual(expected)
})
Run Code Online (Sandbox Code Playgroud)
给出:
Expected: 0
Received: -0
Run Code Online (Sandbox Code Playgroud)
即使我的控制台中的 equals 检查说它们相等。
0 == -0
true
0 === -0
true
Run Code Online (Sandbox Code Playgroud)
在这种情况下我应该使用什么断言比较?
所有这些方法都使用Object.is比较原始值,并且Object.is比较失败时0到-0。
似乎没有任何具体的相关方法(有toBeCloseTo,但这不太合适,因为问题不是浮点精度)。
一个可能的选择是:
expect(actual === expected).toBeTruthy();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1730 次 |
| 最近记录: |