NestJS 测试用例踩坑

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');
  });
});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容