gpt4 book ai didi

database - 依赖于存在的表的测试

转载 作者:搜寻专家 更新时间:2023-10-30 22:14:42 25 4
gpt4 key购买 nike

单元测试假设数据库表存在是否可以接受?

例如,如果有一个 UserStore 类和关联的 UserStoreTest 测试类。假设这个类是一个系统的一部分,当安装时有一个这个类需要命名为 foo_users 的表的“实例”。那么 UserStoreTest 是否可以假设该表存在并使用它?要求 UserStoreTest 类自己设置表而不依赖于系统状态似乎更好,这是相当全局的。前一种方法是否可以接受?

最佳答案

最好的方法可能是找出一种方法来模拟您的数据库,而不是实际连接到真实的数据库。维护数据库模拟会产生一些开销,但有很多优点。

  • 与真实的数据库对话可能会使您的单元测试不必要地变慢,尤其是当您走“建立与数据库的连接,然后为每个测试建立表”的路线时。
  • 我想您已经意识到,您的单元测试可能最终取决于不稳定的数据,这可能会对测试过程产生不利影响,因为它不受测试套件的控制。
  • 单元测试可以在没有访问数据库的机器上运行。这意味着您的单元测试不会意外破坏数据库或类似的东西。
  • 可能还有其他一些原因

如果模拟您的数据库连接不可行,一个好的中间立场可能是拥有一个与您的真实/生产数据库分开的测试数据库。这样,您就可以避免将测试套件连接到真实数据库的担忧,同时保留对数据库的完全控制以进行测试。

关于database - 依赖于存在的表的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15874333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com