mysql - 重置 MySQL 自动增量作为 Node.js 单元测试中的拆卸步骤

标签 mysql unit-testing node.js express

我目前正在 Node.js 应用程序中对我的 DAL 运行单元测试。我希望能够使用虚拟数据库,通过在整个测试过程中发生的非正式设置/拆卸来测试我的 CRUD 操作。例如,通过插入进行设置,通过删除进行拆卸。

我正在测试数据库而不是模拟/假数据库,因为我更愿意针对数据库的半工作副本测试复杂的 SQL。

我遇到的问题是,在具有 AUTO_INCREMENT-ing 的列上,我不能期望 ID 有任何一致性。通过重置 AUTO_INCREMENT 我可以避免这种情况,但随后我将进行大量的复制粘贴编码,在我的所有模型中插入一个方法。

有什么办法能让我只做一次就忘掉它?还是我完全没有找到更好的做法?

最佳答案

您可以使用 MySQL 的 TRUNCATE TABLE命令,它清空表并重置 AUTO_INCREMENT 列。实际上,它会删除表并重新创建它,这比删除所有行要快。

关于mysql - 重置 MySQL 自动增量作为 Node.js 单元测试中的拆卸步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8766493/

相关文章:

php - 数组值存入mysql

mysql - 在连接条件中添加通配符

python - Django View 测试,带有数据的 RequestFactory

java - 如何用 Easymock 替换我的实例

javascript - NodeJS 计算数组中有多少个对象?

mysql - 有没有办法在 Mysql phpMyAdmin 中将字段默认值设置为 Max + 1?

php - mysql 按另一列计算不同的行并对结果进行分组

javascript - 如何用 Jest 编写 javascript 揭示模块模式的单元测试?

node.js - 如何获取node.js中require(id)抛出的SyntaxError的行号?

javascript - Expressjs res.json 在body中渲染html和json