테스트 DI 관련 질문
1398
작성한 질문수 2
constructor(
@InjectRepository(UsersEntity)
private usersRepository: Repository<UsersEntity>,
@InjectRepository(WorkspaceMembersEntity)
private workspaceMembersRepository: Repository<WorkspaceMembersEntity>,
@InjectRepository(ChannelMembersEntity)
private channelMembersRepository: Repository<ChannelMembersEntity>,
private connection: Connection,
) {}
답변 4
0
怎么解决的呀?我也遇到了同样的问题
0
test쪽에서 getRepositoryToken(ChannelMembersEntity) 아래에 Connection 추가하시면 됩니다.
{
provide: getRepositoryToken(ChannelMembersEntity),
useClass: MockChannelMembersRepository,
}, Connection
0
조현영 선생님 안녕하십니까 선생님 강의를 정말 좋아하고 열심히 듣고있습니다.
하지만 약 4일간 이 질문글과 같은 에러를 해결못하는 중에 있습니다..
현영님의 답변처럼 Connection을 추가하면
에러가 나오고 이 에러의 해결방법이 말씀하신 Connection을 모킹해야 하는 경우라고 생각은 되지만 방법을 잘 모르겠습니다. . ㅠㅜㅠ
제가 강의들을 때의 코드는 질문자분과 조금 바뀐 상태입니다
오늘날짜기준 zerocho 깃허브의 sleact/nest-typeorm 코드를 그대로 사용중입니다.
0
import { Module } from '@nestjs/common';
import { UsersService } from './users.service';
import { UsersController } from './users.controller';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UsersEntity } from '../entities/Users.entity';
import { WorkspaceMembersEntity } from '../entities/WorkspaceMembers.entity';
import { ChannelMembersEntity } from '../entities/ChannelMembers.entity';
@Module({
imports: [
TypeOrmModule.forFeature([
UsersEntity,
WorkspaceMembersEntity,
ChannelMembersEntity,
]),
],
providers: [UsersService],
exports: [UsersService],
controllers: [UsersController],
})
export class UsersModule {}
users.module.ts 파일입니다.
0
이 부분은 모듈 부분 보여주시는 게 좋습니다. 테스트쪽과 실제 모듈 모두요
0
import { Test, TestingModule } from '@nestjs/testing';
import { UsersService } from './users.service';
import { getRepositoryToken } from '@nestjs/typeorm';
import { UsersEntity } from '../entities/Users.entity';
import { WorkspaceMembersEntity } from '../entities/WorkspaceMembers.entity';
import { ChannelMembersEntity } from '../entities/ChannelMembers.entity';
class MockUserRepository {
#data = [{ id: 2, email: 'test@gmail.com' }];
findOne({ where: { email } }) {
const data = this.#data.find((v) => v.email === email);
if (data) {
return data;
}
return null;
}
}
class MockWorkspaceMembersRepository {}
class MockChannelMembersRepository {}
describe('UsersService', () => {
let service: UsersService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [
UsersService,
{
provide: getRepositoryToken(UsersEntity),
useClass: MockUserRepository,
},
{
provide: getRepositoryToken(WorkspaceMembersEntity),
useClass: MockWorkspaceMembersRepository,
},
{
provide: getRepositoryToken(ChannelMembersEntity),
useClass: MockChannelMembersRepository,
},
],
}).compile();
service = module.get<UsersService>(UsersService);
});
it('should be defined', () => {
expect(service).toBeDefined();
});
it('findByEmail은 이메일을 통해 유저를 찾아야 함', () => {
expect(service.findByEmail('test@gmail.com')).resolves.toBe({
email: 'test@gmail.com',
id: 2,
});
});
it('findByEmail은 유저를 못 찾으면 null을 반환해야 함', () => {
expect(service.findByEmail('test@gail.com')).resolves.toBe(null);
});
});
users.service.spec.ts 파일입니다.
강의자료는 어디서 다운받나요?
0
131
4
질문 있습니다.
0
304
3
코드 편집기 확장 프로그램
0
213
2
(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?
0
153
2
(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문
0
173
3
로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.
0
158
2
로그인방법이 고민됩니다.
0
193
2
yarn seed 명령어 실행 시 데이터 삽입 안됨
0
297
4
yarn run db:create 시에 발생하는 데코레이터 오류
0
244
2
npm run db:create 시에 발생하는 decorating 오류
0
237
2
RxJS 디버깅 질문 있습니다.
0
193
3
CacheManager에 대해 질문 있습니다.
0
181
2
로깅은 어떻게 하는게 효율적일까요?
0
232
1
CORS 질문 있습니다.
0
423
2
쿠키 옵션에 대해서 질문 있습니다.
0
187
2
로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??
0
452
1
401 unauthorized문제
0
294
1
가드의 장점에 대해서 질문이 있습니다.
0
227
1
로그 관리에 대해 질문 있습니다.
0
253
2
CORS 에러 질문 있습니다.
0
322
2
배포 환경 DB 연결 질문 있습니다.
0
416
2
socket io 미 연결 문제 (nest & flutter)
1
1162
3
no elements in sequence 에러 관해서 질문이 있습니다.
0
459
1
start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?
0
323
1





