Typescript (Jest)ConnectionNotFoundError:Connection“;“违约”;找不到

Typescript (Jest)ConnectionNotFoundError:Connection“;“违约”;找不到,typescript,jestjs,nestjs,Typescript,Jestjs,Nestjs,我尝试在类中测试使用typeorm存储库的函数 为了编写测试类,我在github上使用了以下示例: 从'@nestjs/common'导入{Injectable}; 从'@nestjs/typeorm'导入{InjectRepository,getRepositoryToken}; 从“typeorm”导入{Repository}; 从“./Contact.entity”导入{Contact}; 从“./dto/createContact.dto”导入{CreateContactDto}; 从“

我尝试在类中测试使用typeorm存储库的函数

为了编写测试类,我在github上使用了以下示例:

从'@nestjs/common'导入{Injectable};
从'@nestjs/typeorm'导入{InjectRepository,getRepositoryToken};
从“typeorm”导入{Repository};
从“./Contact.entity”导入{Contact};
从“./dto/createContact.dto”导入{CreateContactDto};
从“/contact.service”导入{ContactService};
从'@nestjs/testing'导入{Test,TestingModule};
const myContact:CreateContactDto={email:email@email.com,主题:“我的主题”,内容:“MyContent”};
描述('ContactService',()=>{
让服务:联系服务;
let repo:存储库;
beforeach(异步()=>{
常量模块:TestingModule=等待测试。createTestingModule({
供应商:[
联系服务,
{
提供:getRepositoryToken(联系人),
使用价值:{
保存:jest.fn().mockRejectedValue(myContact),
find:jest.fn().mockRejectedValue(myContact),
},
},
],
}).compile();
服务=模块.get(联系服务);
repo=module.get(getRepositoryToken(联系人))
});
描述('createContact',()=>{
它('createContact Ok',async()=>{
const myNewContact:CreateContactDto={email:email@email.com,主题:“我的主题”,内容:“MyContent”};
const result=await service.createContact(myNewContact);
expect(result.email).toEqual(myNewContact.email);
})
})
});
我没有发现什么问题,我试着注释“repo=module.get…”,结果什么也没变

这是服务类:

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Contact } from './contact.entity';
import { CreateContactDto } from './dto/createContact.dto';

@Injectable()
export class ContactService {
  constructor(
  @InjectRepository(Contact)
  private contactRepository: Repository<Contact>){}

  async createContact(createContactDto: CreateContactDto) {
    const contact = new Contact();
    Object.assign(contact, createContactDto);
    return contact.save();
  }
  async getContacts() {
    return this.contactRepository.find();
  }
}
从'@nestjs/common'导入{Injectable};
从'@nestjs/typeorm'导入{InjectRepository};
从“typeorm”导入{Repository};
从“./Contact.entity”导入{Contact};
从“./dto/createContact.dto”导入{CreateContactDto};
@可注射()
导出类联系人服务{
建造师(
@输入存储库(联系人)
私有联系人存储库:存储库){}
异步createContact(createContactDto:createContactDto){
常量触点=新触点();
Object.assign(contact,createContactDto);
返回contact.save();
}
异步getContacts(){
返回此.contactRepository.find();
}
}
这就是错误:


谢谢你的帮助

似乎与
新联系人()有关。在您链接的测试示例中,代码使用
this.repository.create()
而不是
newentity()
。现在来看,很多
静态方法
实例方法都引用了
连接
对象,就像
save()
一样。如果您改为这样编写
createContact

异步createContact(createContactDto:createContactDto){ const contact=this.contactRepository.create(createContactDto); 等待此消息。contactRepsitory.save(contact); 回接; }
你不会有任何问题


编辑:确保还将模拟添加到
存储库的测试文件中。创建
方法。否则,您将得到一个关于
create
不是函数的错误。

包括您认为将问题复制为文本而不是文本所需的所有代码images@YegorAndrosov完成;)谢谢你的帮助。你也需要模拟创建一个函数
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Contact } from './contact.entity';
import { CreateContactDto } from './dto/createContact.dto';

@Injectable()
export class ContactService {
  constructor(
  @InjectRepository(Contact)
  private contactRepository: Repository<Contact>){}

  async createContact(createContactDto: CreateContactDto) {
    const contact = new Contact();
    Object.assign(contact, createContactDto);
    return contact.save();
  }
  async getContacts() {
    return this.contactRepository.find();
  }
}