gpt4 book ai didi

javascript - 如何在单元测试中比较 JavaScript 对象?

转载 作者:搜寻专家 更新时间:2023-11-01 00:31:59 25 4
gpt4 key购买 nike

我想知道在单元测试中比较对象的正确方法。出于本示例的目的,我使用 assertmocha使用返回对象的方法 method 测试一个简单的库 mylib

var assert = require("assert");
var mylib = require("../src/mylib");

describe("method", function() {
it("does something clever and returns an object", function() {
assert.equal(
JSON.stringify({/* expected object */}),
JSON.stringify(mylib.method(["items", "in", "the", "list"])));
});
});

上面的方法有效,但我不知道使用 JSON.stringify 是否是推荐的做法。我这样做对吗?

最佳答案

你不应该使用 JSON.stringify,这个方法的问题是根据 MDN JSON.stringify()

Properties of non-array objects are not guaranteed to be stringified in any particular order. Do not rely on ordering of properties within the same object within the stringification.

至此,您可以将 {"a":2, "b":3}{"b":3, "a":2} 进行比较.

而不是你应该使用例如assert.deepEqual(老实说,我从未使用过assert,但从命名来看,它应该是正确的函数)

关于javascript - 如何在单元测试中比较 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com