1

在我的 Typeform 创建函数中。我在我的服务中接受一系列对象。但是当我尝试为此编写一个单元测试时,它会抛出一个错误,因为mockReturnValue它只接受一个对象。这是我的测试规范

export class studentRepositoryFakeFake {
  public async create(): Promise<void> {}
  public async findAll(): Promise<void> {}
  public async save(): Promise<void> {}
  public async update(): Promise<void> {}
  public async remove(): Promise<void> {}
  public async findOne(): Promise<void> {}
}

describe('StudentsService', () => {
  let studentsService: StudentsService;
  let studentsRepository: Repository<Student>;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      providers: [
        StudentsService,
        {
          provide: getRepositoryToken(Student),
          useClass: studentRepositoryFakeFake,
        },
      ],
    }).compile();

    studentsService = module.get<StudentsService>(StudentsService);
    studentsRepository = module.get(getRepositoryToken(Student));
  });

  it('should be defined', () => {
    expect(studentsService).toBeDefined();
  });

  describe('creating students', () => {
    it('throws an error when there is no payload provided', async () => {});

    it('call parameter with correct payload', async () => {
      const students:Student[] = [
        {id:5, name: 'User Name 1', email: 'username@gmail.com', dob: '2001-10-2',age:20 },
      ];
      const studentRepositoryCreateSpy = jest.spyOn(studentsRepository,'create').mockReturnValue(students)
      const studentRepositorySpy = jest.spyOn(studentsRepository,'save').mockResolvedValue(students)
    });
  });
});

我正在尝试编写单元测试的服务

 constructor(
    @InjectRepository(Student) private studentRespository: Repository<Student>,
  ) {}

  async create(createStudentInput: CreateStudentInput[]): Promise<Student[]> {
    const students = await this.studentRespository.create(createStudentInput);
    return await this.studentRespository.save(students);
  }
4

0 回答 0