我已经将我的应用程序设置为使用Mongoose来写入MongoDB数据库,它工作得很好。现在,我正试图添加一些测试,但在示例化测试中使用的模型类时遇到了麻烦。
这是我的文档的代码。
import { Document } from 'mongoose';
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { IsString, IsOptional, ValidateNested } from 'class-validator';
@Schema()
export class Group extends Document {
@Prop()
@IsString()
readonly id: string;
@Prop()
@IsString()
readonly name: string;
@Prop({ type: Map})
@ValidateNested()
readonly properties?: Object;
public static of(params: Partial<Group>): Group {
const group = new Group();
Object.assign(group, params);
return group;
}
}
export const GroupSchema = SchemaFactory.createForClass(Group);
我使用of
方法来简化在测试文件中示例化类的过程。
下面是我在测试文件中使用的内容:
const fakeGroup: Group = Group.of({
id: "1",
name: "admins",
properties: {
plan: "free"
}
});
应该工作正常,因为我在其他应用程序中使用了这个。但在过去的应用程序中,类并没有从Document扩展。所以,现在,当我尝试运行测试时,我遇到了这个错误:
类型错误:无法读取undefined的属性(阅读'tree')
我做错了什么?
谢谢!
2条答案
按热度按时间fafcakar1#
我可以通过在我的类定义中使用不同的方法来解决这个问题:
这允许我单独示例化Group。
oyt4ldly2#
对于想要使用Mongoose解决方案的人,我建议这一款。👏