Jor*_*ran 3 javascript unit-testing node.js
我想知道在单元测试中比较对象的正确方法。出于本示例的目的,我使用assert并mocha测试一个简单的库,其中包含返回对象的mylib方法。method
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"])));
});
});
Run Code Online (Sandbox Code Playgroud)
上面的方法有效,但我不知道使用是否JSON.stringify是推荐的做法。我这样做对吗?
你不应该使用JSON.stringify,这种方法的问题是根据MDN JSON.stringify()
不保证非数组对象的属性按任何特定顺序进行字符串化。不要依赖字符串化中同一对象内属性的排序。
从那时起,您可能会{"a":2, "b":3}与进行比较{"b":3, "a":2}。
相反,您应该使用例如assert.deepEqual(说实话我从未使用过assert,但从命名来看它应该是正确的函数)
| 归档时间: |
|
| 查看次数: |
3879 次 |
| 最近记录: |