【问题标题】:Unit testing Number with should.js fails使用 should.js 的单元测试编号失败
【发布时间】:2012-02-26 22:17:21
【问题描述】:

我有这个(猫鼬)类(这个语法是咖啡脚本):

Entry = new mongoose.Schema
   duration: Number

我用整数(或小数,结果是一样的)显式设置duration属性:

entry = new Entry
entry.duration = 1

我正在保存这个猫鼬实体:

entry.save

但是在测试 findOne 返回的结果实体时,我无法让持续时间属性通过我的单元测试:

doc.duration.should.eql 1

这总是返回:

AssertionError: expected 1 to equal 1

如前所述,我得到的结果是 1 或 1.5 findOne 返回的文档正是我之前保存的实体。

我做错了什么?

【问题讨论】:

    标签: javascript node.js mongoose mocha.js


    【解决方案1】:

    在 Mongoose Schema 类上对 Number 类型的属性进行单元测试的正确方法是:

    doc.duration.valueOf().should.eql 1
    

    所以在属性上调用 valueOf() 方法会返回属性的值。简单地返回属性返回一个对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多