PHPUnit测试之间的依赖关系

时间:2011-10-03 08:29:17

标签: php phpunit

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

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

这会是一个可怕的想法吗?

1 个答案:

答案 0 :(得分:3)

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

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

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

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

    第二部分是通过不同的测试对数据提供者进行实际测试,以便您知道将提供良好的用户名。

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

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

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