摩卡“应该” - 相同的字符串'should.equal()'但会导致未捕获的断言错误

时间:2014-07-27 21:26:38

标签: node.js mocha should.js

我从Mocha那里得到了这个错误:

Uncaught AssertionError: expected 'long-title-abcdefghijklmnopqrs' to equal 'long-title-abcdefghijklmnopqrs'

这没有任何意义,因为这些字符串看起来是相同的。这是测试代码:

it('shortens and joins title to 30 characters and with -', function(done){
    article.createMdArticle('long title abcdefghijklmnopqrstubwxyz', 'the bod', function(err, doc){
      if(err) throw err;
      doc.url_title.should.eql('long-title-abcdefghijklmnopqrs');
      done();
    })
})

和这个mongoose pre('save')挂钩从标题创建url_title

articleSchema.pre('save', function (next) {
    //makes 'test title' into 'test-title'
    this.url_title = this.title.split(' ').join('-').substring(0,30);
    console.log(this.url_title);
    next();
});

我比较任何其他对象数据的所有其他测试都按预期工作

1 个答案:

答案 0 :(得分:0)

想出来......在我的文章Schema mongoose schema ...

var articleSchema = new Schema({
    title : { type: String, index: { unique: true, required: true }},
    body: { type: String, required: true },
    url_title: { sype: String},
});

url_title行,它显示sype: String而不是type: String。当我纠正这个错误时,错误就不复存在了。