我要测试的应用程序代码:
create(params) {
let result = {};
try {
result = await this.db.query('/* some query */');
} catch (e) {
throw new Error('Error creating User', e);
}
return this._getById(result.insertId);
}
我_getById
在同一个类中有一个方法,它完全按照它所说的......
而我目前的测试(通过 Ava 运行):
test('it should create a user', async t => {
const db = mock({
query: () => {
},
});
const userObj = {
// some params
};
const user = new Users({
db: db.object,
});
const call = {
request: userObj,
};
const result = await user.create(call);
// test?
});
如果我尝试基于result
变量测试任何东西,即。新创建的用户,我收到错误"Cannot read property 'insertId' of undefined"
。我用 Sinon 测试这个create
方法是否会返回一个新创建的“用户”的最佳选择是什么?