NestJS 官方文檔很好,但是卻不能面面俱到,單元測試就是其中之一,當我使用typeORM框架后測試用例都跑不起來啦,各種 error。。。??
你是否也碰到同樣的問題呢
import { Test, TestingModule } from '@nestjs/testing';
import { UsersService } from './users.service';
import { Repository } from 'typeorm';
import { Users } from './users.entity';
import { USERS_REPOSITORY_TOKEN } from './../constants/constants';
import { Type, HttpException } from '@nestjs/common';
import { AppModule } from '../app.module';
import { async } from 'rxjs/internal/scheduler/async';
import { Logger } from '@nestjs/common';
import { ParameterException } from '../common/parameter.exception';
describe('UsersService', () => {
let service: UsersService;
beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [AppModule],/// 導入主模塊 是因為數據庫配置在主模塊中
providers: [
UsersService, // 要測試的服務
{
provide: Users, // 操作的數據模型
useClass: Repository,
},
],
}).compile(); // 創建用戶測試測試模塊
service = module.get<UsersService>(UsersService); //在測試模塊中獲取 userService
});
it('查詢所有用戶信息', async () => {
const users = await service.findAll({
name: 'name',
});
expect(users.length).toBe(users.length);
});
it('注冊新增用戶信息', async () => {
const users = await service.register({
name: 'name',
email: '***@qq.com',
nick: '****',
password: '****',
phone: '18516512667',
});
expect(users.id).toBeGreaterThan(0);
});
it('用戶登陸', async () => {
const users = await service.login({
name: '****',
password: '****',
});
expect(users.name).toBe('name');
});
});