6
A
回答
2
使用柴1.5.0和1.8.1摩卡,我以下工作:
var expect = require('chai').expect;
it("shows a diff of arrays", function() {
expect([1,2,3]).to.deep.equal([1,2,3, {}]);
});
it("shows a diff of objects", function() {
expect({foo: "bar"}).to.deep.equal({foo: "bar", baz: "bub"});
});
結果:
✖ 2 of 2 tests failed:
1) shows a diff of arrays:
actual expected
1 | [
2 | 1,
3 | 2,
4 | 3,
5 | {}
6 | ]
2) shows a diff of objects:
actual expected
{
"foo": "bar",
"baz": "bub"
}
這裏沒有顯示的是,輸出以紅色/綠色突出顯示,其中行意外/缺失。
3
亞組的difflet可能是你所需要的
更新:別急,還有更多:https://github.com/andreyvit/json-diff https://github.com/algesten/jsondiff https://github.com/samsonjs/json-diff
+2
感謝您的指針,如果我只是在尋找一個完美的命令行工具,但我正在尋找一個在單元測試期間使用的斷言函數。 – foobarcode
2
基於this StackOverflow answer,我認爲這個問題對我來說很重要,因爲我的測試是異步的。
我的diff正確再次通過以下方式工作:
try {
expect(true).to.equal(false);
done(); // success: call done with no parameter to indicate that it() is done()
} catch(e) {
done(e); // failure: call done with an error Object to indicate that it() failed
}
0
是的,有:在
var assert = require('assert-diff')
it('diff deep equal with message', function() {
assert.deepEqual({pow: "boom", same: true, foo: 2}, {same: true, bar: 2, pow: "bang"}, "this should fail")
})
結果:assert-diff
您可以使用它像這樣
1) diff deep equal with message:
AssertionError: this should fail
{
- bar: 2
+ foo: 2
- pow: "bang"
+ pow: "boom"
}
相關問題
- 1. 與深度等於創建列表2
- 2. Java測試深度不等於
- 3. ClojureScript深入等於JavaScript對象
- 4. 等於()應該是遞歸/深?
- 5. 深度反射比較等於
- 6. 深度誤差vs基線
- 7. 等距深度排序
- 8. XSLT - 深等異常行爲
- 9. 不深的對象存在的NodeJS
- 10. 如何測量視差圖的深度?
- 11. getattr的最大遞歸深度誤差
- 12. 查詢速度的深奧差異
- 13. NLTK CFG遞歸深度誤差
- 14. 在C#中深度克隆深物體(很深)
- 15. 等距圖形深度處理Java
- 16. 深度
- 17. 深度
- 18. 深度
- 19. 深度
- 20. 結構不深的nil指針等於nil?
- 21. 命名空間 - 深度多深
- 22. 物體的深度和深度知覺
- 23. 深度優先搜索確定深度
- 24. NSPredicate陷入深深的篩選值
- 25. glTexSubImage2D深深地影響幀率3.0
- 26. emberjs集深深嵌套未定義鍵
- 27. 像素深度與顏色深度
- 28. 淺淺和深深的平等有什麼區別?這如何應用於緩存?
- 29. Lodash深挑
- 30. 深JSON合併
你在使用什麼測試框架?你打開切換? –
我正在使用摩卡,我願意改變是的。但我真的很喜歡摩卡;) – foobarcode
好吧,這很有趣 - 我會建議你使用摩卡。 :)所以,也許我在這裏感到困惑,因爲摩卡給出了斷言失敗時實際值和期望值之間的字符串差異。我認爲這與斷言庫無關,儘管它對should.js適用於我。這就是你想要的,或者即使斷言沒有失敗,你是否還希望打印差異? –