Nest 无法解析 (?) 的依赖关系。请确保参数 PatientProfileRepository 位于索引 [0]

jad*_*joe 5 testing typescript nestjs

背景

在使用 Nest.js 创建程序时使用 ci 传递测试代码时

我收到这个错误

expect(received).toBeDefined()

Received: undefined


Nest can't resolve dependencies of the ProfilesService (?). Please make sure that the argument PatientProfileRepository at index [0] is available in the RootTestModule context.
Run Code Online (Sandbox Code Playgroud)

问题、未知点

describe('ProfilesService', () => {
  let service: ProfilesService

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      providers: [ProfilesService],
    }).compile()

    service = module.get<ProfilesService>(ProfilesService)
  })

  it('should be defined', () => {
    expect(service).toBeDefined()
  })
})
Run Code Online (Sandbox Code Playgroud)

控制器有类似的代码

import { Test, TestingModule } from '@nestjs/testing'
import ProfilesController from './profiles.controller'

describe('Profiles Controller', () => {
  let controller: ProfilesController

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      controllers: [ProfilesController],
    }).compile()

    controller = module.get<ProfilesController>(ProfilesController)
  })

  it('should be defined', () => {
    expect(controller).toBeDefined()
  })
})
Run Code Online (Sandbox Code Playgroud)

我不知道为什么控制器和服务要负责未定义。如果有人能告诉我,我很高兴。谢谢

jad*_*joe 4

只是没有使用任何依赖的东西

providers: [
 {
    provide: ProfilesService,
    useValue: {},
 },
]
Run Code Online (Sandbox Code Playgroud)
providers: [
 ProfilesService,
 {
    provide: getRepositoryToken(PatientProfile),
    useValue: {},
 },
],
Run Code Online (Sandbox Code Playgroud)

谢谢