我有一个简单的单元测试来断言字符串是正确的,但它只显示失败的测试名称,而不是预期和实际结果的差异。例如,这里有一些愚蠢的测试代码:
describe('stackoverflow', function(){
it('should be simple', function() {
var someValue = 'A' + 1 + 2;
assert.equal('A3', someValue);
});
});
输出效果不大:
$ mocha
stackoverflow
1) should be simple <--- this line is red
是的,我可以看到哪个测试失败但我不能轻易理解为什么。我希望看到类似的内容:
$ mocha
stackoverflow
1) should be simple
Expected: 'A3'
Actual : 'A12'
我有什么问题吗?
答案 0 :(得分:0)
这是因为我之后又进行了另一次没有设置超时的测试(因为它非常慢)并使用了异步模式,但我没有调用done()
这是test.js,它展示了我所看到的问题(我已经删除了所有不必要的垃圾):
var assert = require("assert");
describe('basic', function(){
it('should be simple', function() {
var someValue = 'A' + 1 + 2;
assert.equal('A3', someValue);
});
});
describe('slow', function(){
it('should not explode', function(done) {
this.timeout(0); // because it takes ages
});
});
解决方案只是为了确保我在异步测试中调用done():
var assert = require("assert");
describe('basic', function(){
it('should be simple', function() {
var someValue = 'A' + 1 + 2;
assert.equal('A3', someValue);
});
});
describe('slow', function(){
it('should not explode', function(done) {
this.timeout(0); // because it takes ages
done();
});
});