Nuxt.jsアプリのStorybookで画像を読み込む
mmmuser
デロイト トーマツ ウェブサービス株式会社(DWS)公式ブログ
最近Lambda+nodeを頑張っている、長です。最近mysqljsと言うものを使用したので、使い方とテストについて紹介したいと思います。
まずはインストール
npm install mysql
使い方
import mysql from 'mysql';
const connection = mysql.createConnection({
host: 'localhost',
user: 'user',
password: 'password',
database: 'database'
});
connection.connect((error) => {
if (error) {
console.error('error connecting: ' + error.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
connection.query(SELECT * FROM table, (error, results, fields) => {
if (error) {
console.log(error);
return;
} else {
console.log('results[0]);
}
});
mysql.createConnectionの値は必要に応じて変更してください。
そして、テストですがテストで実際のDBに対してクエリ実行してしまうのはよろしくないので、今回「mockery」を使用し、mysqljsをモックしてテストを行なう形にしました。
インストール
npm install mockery
setup.js
import mockery from 'mockery';
import m from 'module';
const connectionMock = {
connect: () => {
},
query: (query) => {
let result;
switch (query) {
case 'SELECT * FROM table;':
result = 'result'
break;
default:
}
return result;
}
}
const mysqlMock = {
createConnection: () => {
return connectionMock;
}
};
mockery.enable();
mockery.warnOnUnregistered(false);
mockery.registerMock('mysql', mysqlMock);
const originalLoader = m._load;
m._load = (request, parent, isMain) => {
return originalLoader(request, parent, isMain);
}
上記のjsをpackage.jsonに追記し、テストの際に実行されるようにすればOKです。
こういった実装は初めてだったのですが、mockeryはいろんな場面で役にたちそうだなと感じました(゜゜)