Mongoose创建测试数据并在没有数据库连接的情况下进行填充

Mongoose create test data and populate without a database connection

本文关键字:情况下 填充 数据库连接 测试数据 创建 Mongoose      更新时间:2023-09-26

我正在编写一个单元测试,它使用了一个嵌套对象的mongoose模型。我想填充主模型和引用模型,而不需要调用"populate"并从数据库中获取任何内容。以下是coffeescript 中的一个示例

CarSchema = new mongoose.Schema
  name:
    type: String
    required: true
  engine:
    type: ObjectId
    ref: 'Engine'
    required: true
Car = mongoose.model('Car', CarSchema)
EngineSchema = new mongoose.Schema
  name:
    type:String
    required: true
Engine = mongoose.model('Engine', EngineSchema)
engine1 = new Engine({name: 'test'})
car1 = new Car({engine: engine1, name: 'car'})
assert.equal (car1.engine.name, 'test') #this fails

结果是car1.engine被设置为id而不是engine对象。有办法让它发挥作用吗?

调用setValue将保留水合文档:

car1.setValue('engine', engine1)