我的要求是在单元测试脚本中使用stubing来绕过一些使用模拟数据的实际mysql查询。我正在使用mocha测试框架和chai。我不知道如何使用模拟数据来绕过mysql查询。
我尝试了一些测试变量,如果这个变量是真的,我就用预定义的模拟数据绕过mysql查询。但这不是一个适当的程序。那么你能解释一下如何使用sinon存根来克服mysql使用模拟数据的问题吗。
let query_response = await sequelize.query("select * from `" + table_name + "` where email='" + data.user + "' and name = '" + name + "' " + pre_name + ";", {
type: sequelize.QueryTypes.SELECT
});
在单元测试中,我需要绕过这个查询并使用一些模拟数据给出响应。React应该是这样的,
[ { id: '3',
xyz_id: 'Z1455264',
vir_id: '264_3',
name: 'XYZ',
pre_name: 'abc',
value: 1 },
{ id: '32',
xyz_id: 'Z1455dd264',
vir_id: '26s4_3',
name: 'XYZQ',
pre_name: 'abdc',
value: 1 }];
1条答案
按热度按时间nfzehxib1#
有很多方法(依赖注入、运行时模块替换等)可以做到这一点,还有很多库可以帮助您。这取决于你的抽象程度和你想要的整洁程度。快速而肮脏的方法是使用proxyquire和testdouble之类的模拟库。
使用sut.js(您将要测试的模块/系统),您将拥有:
在测试中,您可以执行以下操作(与测试框架无关):