sequelize /유닛테스트 진행시 데이터베이스 연결

flobeeee·2021년 6월 3일
0

시행착오

목록 보기
15/43
post-thumbnail

문제 발생

  describe('readhighlights', () => {
    it('should return two highlights', async () => {
      const result = await service.readhighlights(1, 1, 'test');
      expect(result.length).toEqual(2);
    });
  });

해당 테스트 코드를 작성하고, npm run test:watch 진행

에러 : Model not initialized: Member "findOne" cannot be called. "User" needs to be added to a Sequelize instance.

시도

“Model not initialized: Member "findOne" cannot be called.” Code Answer 참고하여

import { User } from  './user/user.model';
import { Sequelize } from 'sequelize-typescript';

const sequelize = new Sequelize({...});

sequelize.addModels([User]);

테스트 파일 상단에 해당 코드를 추가 했으니, {...} 부분 에러뜸

해결

아마 {...} 부분을 채워넣어야 하는 것으로 보임

Sequelize 'Dialect needs to be explicitly supplied as of v4.0.0' 참고하여

import { User } from './user/user.model';
import { Highlight } from './highlight/highlight.model';
import { Theme } from './theme/theme.model';
import { Sequelize } from 'sequelize-typescript';

const sequelize = new Sequelize('liner_nest', 'root', null, {
  host: 'localhost',
  dialect: 'mysql',
});

sequelize.addModels([User, Highlight, Theme]);

내용 채우고, 데이터베이스모델들 가져오니까 잘 돌아감

profile
기록하는 백엔드 개발자

0개의 댓글