gpt4 book ai didi

unit-testing - 大项目,严重缺乏测试覆盖率,您将如何解决这个问题?

转载 作者:行者123 更新时间:2023-12-02 07:55:23 26 4
gpt4 key购买 nike

所以我有一个巨大的 SF2 项目,幸运的是它写得相当“OK”。服务在那里,后台工作在那里,没有神类,它是可测试的——但是,我除了单元测试之外从未得到过任何进一步的东西,所以问题基本上是,我从哪里开始进一步进行。

该项目由 SF2 和所有 yada yada、Doctrine2、Beanstalkd、Gaufrette 以及其他一些抽象组成 - 很好。它遇到的一个问题是 Controller 中到处都有一些粘合代码,但我不认为这是一个大问题,因为功能测试是我的主要焦点。基础设施也设置得很好,它由 docker 覆盖,所以 CI 也能很好地工作。

但它基本上已经变得太大,无法再进行手动测试,因此我希望在短时间内实现完整的功能覆盖,并让单元测试随着时间的推移而增长。 (将深入研究孤立的对象,因为它们需要 future 的调整并在适当的时候为它们构建测试)

所以我已经涵盖了单元测试,这需要随着时间的推移而增长,但我想在功能测试方面采取一些步骤,以便在测试部门上获得一些快速的收获。昨天。

我现在的计划是使用 Behat 和 Mink 来完成此任务,测试将会很大,所以我可能希望将其设置为故事而不是代码。 Behat 似乎还有 Symfony 的 BrowserKit 的扩展。有很多服务和外部事情发生,但它们都是由服务隔离的,所以我猜我可以通过测试环境服务配置来模拟它们。如果有更好的方法请在这里提出建议

我还需要固定装置,到目前为止我正在使用 Alice 生成一些固定装置,与学说扩展一起看起来很好,不认为这个有“更好”的选项。

我应该如何测试外部服务?我 mock Facebook 服务,但我也想在某个测试帐户上真正测试它,这是否可取?我知道这超出了它的范围,必须以一切可能的方式模拟和测试该服务,以根据纯粹主义者的说法“确保其工作”。但最终它仍然因为一些 API key 或连接中的其他问题而崩溃,这是我真的无法承受的。 所以也请在这里提出建议

当然,欢迎您提出使用其他工具的所有建议,尤其是如果有一本涵盖我的故事的好书。

最佳答案

我很高兴你提出了同样的建议。

我会考虑从您最关键的业务部分开始;对极其重要的业务逻辑进行单元测试,并在其余部分使用行为。

在大多数情况下,我会为您的服务创建 stub ,这些 stub 具有预期输入的预期输出。这样您就可以根据特定输入创建失败。您可以在测试配置中覆盖您的服务。

另一种方法是进行非常精简的功能测试,向所有端点发出 GET 请求并查找 200。这是确保页面至少加载的快速方法。从那里,您可以开始为 POST 端点编写测试,并使用更详细的测试用例进一步扩展您的套件。

关于unit-testing - 大项目,严重缺乏测试覆盖率,您将如何解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33667328/

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