2016-11-11 51 views
2

我試圖做出嘲諷數據庫驅動程序的簡單基本的例子(將在後面的測試中使用):類型錯誤:試圖換未定義的屬性查詢作爲功能

'use strict'; 
import mysql from 'mysql'; 
import sinon from 'sinon'; 

let mock = sinon.mock(mysql); 

mock.expects('query').withExactArgs(`DROP DATABASE IF EXISTS myDatabase`).yields({ "fieldCount": 0, "affectedRows": 1, "insertId": 0, "serverStatus": 258, "warningCount": 0, "message": "", "protocol41": true, "changedRows": 0 }); 

mysql.query('DROP DATABASE IF EXISTS myDatabase'); 

我得到的錯誤:

TypeError: Attempted to wrap undefined property query as function 
+1

它看起來像從[文檔](https://www.npmjs.com/package/mysql#introduction)您使用mysql.createConnection()返回該則可以調用connection.query連接。雖然我不太熟悉節點mysql,所以我可能會離開。 –

+0

@ProfessorAllman你是對的,請發表回答:) –

回答

0

它看起來像您使用mysql.createConnection()返回該則可以調用connection.query連接的文檔。

'use strict'; 
import mysql from 'mysql'; 
import sinon from 'sinon'; 

let mock = sinon.mock(mysql.createConnection()); 

mock.expects('query').withExactArgs(`DROP DATABASE IF EXISTS myDatabase`).yields({ "fieldCount": 0, "affectedRows": 1, "insertId": 0, "serverStatus": 258, "warningCount": 0, "message": "", "protocol41": true, "changedRows": 0 }); 

mysql.query('DROP DATABASE IF EXISTS myDatabase');