我正在使用記憶體中的貓鼬資料庫來創建我的單元測驗,并且我想在測驗之前創建一個檔案。我的界面是:
export interface IUsers {
readonly name: string;
readonly username: string;
readonly email: string;
readonly password: string;
}
我的 beforeEach 是:
import { MongooseModule } from "@nestjs/mongoose";
import { Test, TestingModule } from "@nestjs/testing";
import { closeInMongodConnection, rootMongooseTestModule } from '../test-utils/mongo/MongooseTestModule';
import { User, UserSchema } from "./schemas/users.schema";
import { UsersService } from "./users.service";
describe("UsersService", () => {
let service: UsersService;
let testingModule: TestingModule;
let userModel: Model<User>;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [
rootMongooseTestModule(),
MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
],
providers: [UsersService],
}).compile();
service = module.get<UsersService>(UsersService);
//create user
userModel = testingModule.get<Model<User>>(
'UserModel',
);
});
TypeError: Cannot read pro perties of undefined (reading 'get')我在測驗程序中遇到錯誤。我嘗試使用let userModel: Model<IUsers>;但我得到同樣的錯誤。
uj5u.com熱心網友回復:
使用testingModule或module。
您宣告testingModule但從未初始化。
let testingModule: TestingModule;這部分是未定義的,除非為它分配了一些東西。
像這樣試試
describe('UsersService', () => {
let testingModule: TestingModule;
let userModel: Model<User>;
let userService: UserService;
beforeEach(async () => {
testingModule = await Test.createTestingModule({
imports: [
rootMongooseTestModule,
MongooseModule.forFeature([{ name: User.name, schema: UserSchema }])],
providers: [UsersService],
}).compile();
userService = testingModule.get<UsersService>(UsersService);
userModel = testingModule.get<Model<User>>('UserModel');
// await userModel.create(...) or whatever methods you have
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/437529.html
上一篇:賽普拉斯自定義查找命令不可鏈接
