【问题标题】:Dependencies between PHPUnit testsPHPUnit 测试之间的依赖关系
【发布时间】:2011-10-03 16:46:44
【问题描述】:

我正在为 API 编写一个 PHPUnit 测试用例(所以不完全是单元测试),我正在考虑进行一个所有其他测试都依赖的测试。

测试用例中的测试发出 API 请求。这些请求中的大多数都需要用户。有问题的测试将创建其他测试将使用的用户。

这是一个可怕的想法吗?

【问题讨论】:

  • 把它变成一个实用方法而不是一个单独的测试。
  • 我可以,但是将其作为测试会使测试用例更加丰富。我错过了什么吗?
  • 但是您的测试不是在测试您是否可以创建用户,而是在测试其他功能。

标签: php phpunit


【解决方案1】:

我认为单元测试的最佳方法是首先消除依赖关系。

  1. 您可以使用自己的本地版本来抽象端点,该版本将返回可预测的结果。这样您就可以测试您的请求是否正确。

  2. 您可以使用也将返回可预测数据(用户名等)的存根来抽象数据提供者(数据库、文件站点等)。

之后,您只需测试您的请求并查看它们是否正确..

第二部分是实际测试数据提供者,用不同的测试,所以你知道会给出好的用户名。

然后你就可以测试API连接等了。

编辑。如果您的代码中有依赖项,并且难以抽象提供程序或端点 Web 服务,您可能需要调整您的代码,以便它接受对这些对象的引用作为参数。比在您的测试中您更改使用您自己的存根对象传递的对象。在生产环境中,您传递了正确的引用,因此您无需更改代码进行测试。

我希望我已经清楚了。如果没有,问我,我可以更好地解释,也许我没有很好地理解你的问题

【讨论】:

    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2019-05-14
    • 2014-06-19
    相关资源
    最近更新 更多