node.js - 带有回调的开玩笑假函数
问题描述
我试图在下面的代码中伪造 mysqlconnection.execute 函数
const insertAccount = (mySqlConnection, userId, rowData, instName) => {
console.log(mySqlConnection)
return new Promise((resolve, reject) => {
mySqlConnection.execute(
'insert into account(userId, rowData, instName) values(?, ?, ?)',
[userId, rowData, instName], (err, results) => {
console.log(err, results)
if (err) {
reject(err);
} else {
console.log('......... results ', results)
resolve({ accountId: results.insertId });
}
});
})
}
export default insertAccount;
我尝试了多次迭代都没有成功,我最新的测试功能如下
import insertAccount from '../../../accountRoutines/insertAccount.js';
class mockSql {
errMsg;
resultValue;
callback;
constructor(errMsg, resultValue) {
this.errMsg = errMsg;
this.resultValue = resultValue;
}
execute(stmt, id, err, results) {
err = () => { return this.errMsg }
results = () => { return this.resultValue }
if (this.errMsg) err()
else results()
}
}
describe("Account insert mysql routines", () => {
it("insert account fail", async () => {
return expect(insertAccount(new mockSql('test error', null), 1, '', '')).rejects.toEqual('test error');
})
it("insert account succeed", async () => {
return expect(insertAccount(new mockSql(null, { insertId: 1 }), 1, '', '')).resolves.toEqual(true);
})
})
谁能帮我解决这个问题
先感谢您
解决方案
推荐阅读
- java - 我需要标准化位图并将其存储在 TensorImage 中。有没有办法做到这一点?
- python - 是否可以迭代/循环键,嵌套在列表中的字典值?
- javascript - 如何获取 GuildMember 的角色及其信息
- javascript - 为什么 atom 不推荐/自动完成 console.log()?
- python - Python Interactive Brokers API 对于历史期权价格非常慢
- javascript - 我想在我的 react js 应用程序中使用我的自定义 icon.png,就像一个按钮
- python - 使用pyQt5时没有出现窗口
- python - 按值对字典进行排序
- c# - 手机上的Unity鼠标输入
- android - CSS 媒体查询在移动设备上不起作用