Type Script의 Node입니다.테스트당 DB(MySQL) 함수를 js+Jest로 재설정
6713 단어 MySQLTypeScriptJesttech
연결이 된다면 무엇이든지 할 수 있기 때문에 별 수가 가장 많고 유형적으로 정의된 이곳을 선택했다.
npm install --save-dev mysql @types/mysql
DB를 먼저 파괴하고 재생성합니다.import { createConnection } from "mysql";
import * as fs from "fs";
export async function resetDB() {
const connection = createConnection({
host: "localhost",
user: "root",
password: "",
multipleStatements: true,
});
connection.connect();
connection.query("DROP DATABASE IF EXISTS test_db");
connection.query("CREATE DATABASE test_db");
connection.query("use test_db");
다음에 초기 데이터를 넣습니다.테스트용 데이터를 어떻게 관리하는지에 따라 다르지만, 이번에는 덤프된 SQL 파일이 있어서 읽고 실행하기로 했습니다.
// test.dump を初期データとして入れるよ
const seedSQLFile = fs.readFileSync(
"./docker/compose/db/init/test.dump",
"utf8"
);
const queries = seedSQLFile.split(";");
for (const query of queries) {
await new Promise<void>((resolve) =>
connection.query(query).on("result", resolve)
);
}
마지막으로 연결을 잠그는 것을 잊지 마세요. connection.end();
}
Jest는 개별 테스트 전에 수행됩니다.beforeEach는 다음과 같습니다.잘 사용하지 않으면 시험이 리셋 처리를 기다리지 않기 때문에 주의해야 한다☝️beforeEach(async () => {
await resetDB();
});
Reference
이 문제에 관하여(Type Script의 Node입니다.테스트당 DB(MySQL) 함수를 js+Jest로 재설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/seya/articles/23799d4ae973f6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)