我正在进行以下测试:
describe("objects", function () {
it("should equal", function () {
var a = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
x: 3
}
}
};
var b = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
x: 4
}
}
};
a.should.deep.equal(b);
});
});
测试按预期失败,但错误消息根本没有帮助。
AssertionError: expected { Object (a, b, ...) } to deeply equal { Object (a, b, ...) }
我如何得到它以便输出一个经过美化的json比较呢?
我目前正在使用的库:
答案 0 :(得分:4)
您可以使用以下内容更改邮件被截断的位置:
chai.config.truncateThreshold = 0
所以对你的例子来说:
var chai = require('chai');
var expect = chai.expect;
chai.config.truncateThreshold = 0;
describe.only("objects", function () {
it("should equal", function () {
var a = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
x: 3
}
}
};
var b = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
x: 4
}
}
};
expect(a).to.deep.equal(b);
});
});
这将导致:
AssertionError: expected { a: 1, b: 2, c: { a: 1, b: 2, c: { a: 1, b: 2, x: 3 } } } to deeply equal { a: 1, b: 2, c: { a: 1, b: 2, c: { a: 1, b: 2, x: 4 } } }
+ expected - actual
"b": 2
"c": {
"a": 1
"b": 2
+ "x": 4
- "x": 3
}
}
}
答案 1 :(得分:1)
mocha记者可以选择:public frmKaliUI()
{
InitializeComponent();
colorFade1();
}
private async void colorFade1()
{
Color c = Color.FromArgb(139, 0, 139);
for (int i = 255; i > 0; i--)
{
c = Color.FromArgb(139, i, 139);
this.BackColor = c;
await Task.Delay(50);
}
}
你可以在你的业力配置中坚持这个:
showDiff: true
答案 2 :(得分:0)
您可以使用assert-diff库仅显示测试失败时的差异。
var assert = require('assert-diff');
describe("objects", function () {
it("should equal", function () {
var a = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
x: 3
}
}
};
var b = {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
c: {
a: 1,
b: 2,
x: 4
}
}
};
assert.deepEqual(a, b);
});
});
这会给你带来差异的错误
1) objects should equal:
AssertionError: { a: 1, b: 2, c: { a: 1, b: 2, c: { a: 1, b: 2, x: 3 } } } deepEqual { a: 1, b: 2, c: { a: 1, b: 2, c: { a: 1, b: 2, x: 4 } } }
{
c: {
c: {
- x: 4
+ x: 3
}
}
}