我目前正在Node.js应用程序中对我的DAL运行单元测试。我希望能够使用一个虚拟数据库,使用在整个测试过程中发生的非正式设置/销毁来测试我的CRUD操作。例如,Setup通过执行插入操作进行,而teardown通过执行删除操作进行。
我测试的是数据库,而不是mock/fake,因为我更喜欢在数据库的半工作副本上测试复杂的SQL。
我遇到的问题是,在具有AUTO_INCREMENT-ing的列上,我不能期望ID有任何一致性。通过重置AUTO_INCREMENT,我可以避免这种情况,但随后我会进行大量的复制-粘贴编码,在我的所有模型中插入一个方法。
有没有办法让我只做一次就忘了它?或者,有没有一种更好的做法,我完全错过了?
发布于 2012-01-07 09:31:50
您可以使用MySQL的TRUNCATE TABLE命令,该命令清空一个表并重置AUTO_INCREMENT列。有效地,它删除表并重新创建它,这比删除所有行更快。
https://stackoverflow.com/questions/8766493
复制相似问题