gpt4 book ai didi

laravel - 使用 Laravel 进行单元测试

转载 作者:行者123 更新时间:2023-12-03 12:45:15 25 4
gpt4 key购买 nike

我在 Laravel 5.5 框架中使用 PHP。
我最近开始为我的代码编写 unitTests,我有几个问题:

  • 与我的数据库交互的最佳方式是什么?
    我应该像 SQLite 一样使用 InMemoryDB 还是用 Mockery 模拟所有内容。
  • 如果我与数据库进行交互,那仍然是单元测试还是集成测试?

  • 感谢您提前回答

    最佳答案

    我在一家公司工作,我们力求实现 80% 的代码覆盖率,通常我们主要测试 End-2-End,使用数据库和模拟外部调用,我们使用 SQLite,因此我们的测试套件可以在本地环境中快速运行。当案例有意义时,我们对其进行单元测试,例如我为不同国家/地区所做的税务服务进行了单元测试,因为它非常基于输入输出。

    为什么我们更喜欢 End-2-End:

  • 如果您不必进行单元、集成和端到端测试,速度会更快
  • 你测试的端点实际上会用到
  • 如果您使用持续集成运行,我更喜欢使用真实数据库运行

  • SQLite 有一些缺点,主要是它不能像其他 RDB 那样工作,那里有很多设置和限制,最重要的是我在执行外键等方面遇到了问题。

    所以回答你的问题:
  • 至少在本地使用 SQLite 是明智之举
  • 在单元测试中,您只测试一个类并模拟其他所有内容,您基本上是在测试代码是否可以执行。请注意,这是一个非常复杂的主题的过度简化版本。
  • 关于laravel - 使用 Laravel 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53740130/

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