0
ここではテストしたい機能があります。それはmysqlからデータベースを取得しますMochaによるテスト時にアサートして動作しないでください
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
user : 'root',
password : 'toor',
database : 'DB'
});
exports.findById = function(id, callback){
pool.getConnection(function(err, connection) {
var row;
var query = connection.query("SELECT * FROM Users WHERE id = '" + id + "'", function(err, rows) {
connection.release();
callback(null,rows[0]);
});
console.log(query.sql);
});
}
私はこの機能の手動テストを行います。行の値が[0]この
var user = {
id: 1,
username: 'test',
password: '123',
name: 'test user',
phone: '01699924568'
}
ようにする必要がありますので、これは私がそれ
var User = require('../Lib/users.js');
var assert = require('assert');
var should = require('should');
describe('Test User Class', function() {
describe('Test case 1: Load user with id from database', function() {
it('should return user with id = 1 in database', function() {
User.findById(1, function(error, rows){
rows.id.should.be.equal(2)
});
});
});
});
のために書いたテストが返されたidが1(ない2)であるため、このテストはエラーが発生しなければならないです。しかし、期待通りには起こらず、テストに合格しました。 私は本当にこのエラーで怒っています。私は、このような聞かせてexports.findById
関数の戻り列として多くの方法を試してみました[0]が、行が[0]の値(コンソールにログインすることにより、I試験) が私を助けているが、それは未定義返さください
ありがとうございます。役に立った – Bella
あなたはそれを解決しましたか? – MarcoL
はい。問題は解決されました。私は最終的にテストを書くことができました – Bella